source:
ralphm-patches/py3-subprotocols.patch
Last change on this file was 78:361e2111a663, checked in by Ralph Meijer <ralphm@…>, 6 years ago | |
---|---|
File size: 10.1 KB |
-
wokkel/generic.py
# HG changeset patch # Parent 5f4f660d738928e7d8e2741f8e957386ae75ab86 diff --git a/wokkel/generic.py b/wokkel/generic.py
a b 7 7 Generic XMPP protocol helpers. 8 8 """ 9 9 10 from zope.interface import implement s10 from zope.interface import implementer 11 11 12 12 from twisted.internet import defer, protocol 13 13 from twisted.python import reflect … … 86 86 87 87 88 88 89 @implementer(IDisco) 89 90 class VersionHandler(XMPPHandler): 90 91 """ 91 92 XMPP subprotocol handler for XMPP Software Version. … … 94 95 U{XEP-0092<http://xmpp.org/extensions/xep-0092.html>}. 95 96 """ 96 97 97 implements(IDisco)98 99 98 def __init__(self, name, version): 100 99 self.name = name 101 100 self.version = version -
wokkel/subprotocols.py
diff --git a/wokkel/subprotocols.py b/wokkel/subprotocols.py
a b 7 7 XMPP subprotocol support. 8 8 """ 9 9 10 __all__ = ['XMPPHandler', 'XMPPHandlerCollection', 'StreamManager', 11 'IQHandlerMixin'] 10 from __future__ import division, absolute_import 12 11 13 from zope.interface import implement s12 from zope.interface import implementer 14 13 15 14 from twisted.internet import defer 16 15 from twisted.internet.error import ConnectionDone 17 16 from twisted.python import failure, log 17 from twisted.python.compat import iteritems, itervalues 18 18 from twisted.python.deprecate import deprecatedModuleAttribute 19 19 from twisted.python.versions import Version 20 20 from twisted.words.protocols.jabber import error, ijabber, xmlstream … … 30 30 __name__, 31 31 "XMPPHandlerCollection") 32 32 33 @implementer(ijabber.IXMPPHandler) 33 34 class XMPPHandler(object): 34 35 """ 35 36 XMPP protocol handler. … … 38 39 extension protocols, and are referred to as a subprotocol implementation. 39 40 """ 40 41 41 implements(ijabber.IXMPPHandler)42 43 42 def __init__(self): 44 43 self.parent = None 45 44 self.xmlstream = None … … 277 276 # deferreds will never be fired. 278 277 iqDeferreds = self._iqDeferreds 279 278 self._iqDeferreds = {} 280 for d in i qDeferreds.itervalues():279 for d in itervalues(iqDeferreds): 281 280 d.errback(reason) 282 281 283 282 … … 455 454 return error.StanzaError('internal-server-error').toResponse(iq) 456 455 457 456 handler = None 458 for queryString, method in self.iqHandlers.iteritems():457 for queryString, method in iteritems(self.iqHandlers): 459 458 if xpath.internQuery(queryString).matches(iq): 460 459 handler = getattr(self, method) 461 460 … … 472 471 d.addCallback(self.send) 473 472 474 473 iq.handled = True 474 475 476 477 __all__ = ['XMPPHandler', 'XMPPHandlerCollection', 'StreamManager', 478 'IQHandlerMixin'] -
wokkel/test/test_subprotocols.py
diff --git a/wokkel/test/test_subprotocols.py b/wokkel/test/test_subprotocols.py
a b 5 5 Tests for L{wokkel.subprotocols} 6 6 """ 7 7 8 from __future__ import division, absolute_import 9 8 10 from zope.interface.verify import verifyObject 9 11 10 12 from twisted.trial import unittest … … 210 212 """ 211 213 self.xmlstream.connectionMade() 212 214 self.xmlstream.dataReceived( 213 "<stream:stream xmlns='jabber:client' "214 "xmlns:stream='http://etherx.jabber.org/streams' "215 "from='example.com' id='12345'>")215 b"<stream:stream xmlns='jabber:client' " 216 b"xmlns:stream='http://etherx.jabber.org/streams' " 217 b"from='example.com' id='12345'>") 216 218 self.xmlstream.dispatch(self.xmlstream, "//event/stream/authd") 217 219 218 220 … … 475 477 xs = factory.buildProtocol(None) 476 478 xs.transport = proto_helpers.StringTransport() 477 479 xs.connectionMade() 478 xs.dataReceived( "<stream:stream xmlns='jabber:client' "479 "xmlns:stream='http://etherx.jabber.org/streams' "480 "from='example.com' id='12345'>")480 xs.dataReceived(b"<stream:stream xmlns='jabber:client' " 481 b"xmlns:stream='http://etherx.jabber.org/streams' " 482 b"from='example.com' id='12345'>") 481 483 xs.dispatch(xs, "//event/stream/authd") 482 484 sm.send("<presence/>") 483 self.assertEquals( "<presence/>", xs.transport.value())485 self.assertEquals(b"<presence/>", xs.transport.value()) 484 486 485 487 486 488 def test_sendNotConnected(self): … … 498 500 xs = factory.buildProtocol(None) 499 501 xs.transport = proto_helpers.StringTransport() 500 502 sm.send("<presence/>") 501 self.assertEquals( "", xs.transport.value())503 self.assertEquals(b"", xs.transport.value()) 502 504 self.assertEquals("<presence/>", sm._packetQueue[0]) 503 505 504 506 xs.connectionMade() 505 self.assertEquals( "", xs.transport.value())507 self.assertEquals(b"", xs.transport.value()) 506 508 self.assertEquals("<presence/>", sm._packetQueue[0]) 507 509 508 xs.dataReceived( "<stream:stream xmlns='jabber:client' "509 "xmlns:stream='http://etherx.jabber.org/streams' "510 "from='example.com' id='12345'>")510 xs.dataReceived(b"<stream:stream xmlns='jabber:client' " 511 b"xmlns:stream='http://etherx.jabber.org/streams' " 512 b"from='example.com' id='12345'>") 511 513 xs.dispatch(xs, "//event/stream/authd") 512 514 513 self.assertEquals( "<presence/>", xs.transport.value())515 self.assertEquals(b"<presence/>", xs.transport.value()) 514 516 self.assertFalse(sm._packetQueue) 515 517 516 518 … … 525 527 xs = factory.buildProtocol(None) 526 528 xs.transport = proto_helpers.StringTransport() 527 529 xs.connectionMade() 528 xs.dataReceived( "<stream:stream xmlns='jabber:client' "529 "xmlns:stream='http://etherx.jabber.org/streams' "530 "from='example.com' id='12345'>")530 xs.dataReceived(b"<stream:stream xmlns='jabber:client' " 531 b"xmlns:stream='http://etherx.jabber.org/streams' " 532 b"from='example.com' id='12345'>") 531 533 sm.send("<presence/>") 532 self.assertEquals( "", xs.transport.value())534 self.assertEquals(b"", xs.transport.value()) 533 535 self.assertEquals("<presence/>", sm._packetQueue[0]) 534 536 535 537 … … 551 553 xs.connectionLost(None) 552 554 553 555 sm.send("<presence/>") 554 self.assertEquals( "", xs.transport.value())556 self.assertEquals(b"", xs.transport.value()) 555 557 self.assertEquals("<presence/>", sm._packetQueue[0]) 556 558 557 559 … … 562 564 self._streamStarted() 563 565 564 566 self.streamManager.request(self.request) 565 expected = u"<iq type='get' id='%s'/>" % self.request.stanzaID 566 self.assertEquals(expected, self.transport.value()) 567 self.assertTrue(self.transport.value()) 567 568 568 569 569 570 def test_requestSendInitializedFreshID(self): … … 575 576 self.request.stanzaID = None 576 577 self.streamManager.request(self.request) 577 578 self.assertNotIdentical(None, self.request.stanzaID) 578 expected = u"<iq type='get' id='%s'/>" % self.request.stanzaID 579 self.assertEquals(expected, self.transport.value()) 579 self.assertTrue(self.transport.value()) 580 580 581 581 582 582 def test_requestSendNotConnected(self): … … 587 587 self.streamManager.addHandler(handler) 588 588 589 589 self.streamManager.request(self.request) 590 expected = u"<iq type='get' id='test'/>"591 590 592 591 xs = self.xmlstream 593 self.assertEquals( "", xs.transport.value())592 self.assertEquals(b"", xs.transport.value()) 594 593 595 594 xs.connectionMade() 596 self.assertEquals( "", xs.transport.value())595 self.assertEquals(b"", xs.transport.value()) 597 596 598 xs.dataReceived( "<stream:stream xmlns='jabber:client' "599 "xmlns:stream='http://etherx.jabber.org/streams' "600 "from='example.com' id='12345'>")597 xs.dataReceived(b"<stream:stream xmlns='jabber:client' " 598 b"xmlns:stream='http://etherx.jabber.org/streams' " 599 b"from='example.com' id='12345'>") 601 600 xs.dispatch(xs, "//event/stream/authd") 602 601 603 self.assert Equals(expected, xs.transport.value())602 self.assertTrue(self.transport.value()) 604 603 self.assertFalse(self.streamManager._packetQueue) 605 604 606 605 … … 616 615 d.addCallback(cb) 617 616 618 617 xs = self.xmlstream 619 xs.dataReceived( "<iq type='result' id='test'/>")618 xs.dataReceived(b"<iq type='result' id='test'/>") 620 619 return d 621 620 622 621 … … 629 628 self.assertFailure(d, error.StanzaError) 630 629 631 630 xs = self.xmlstream 632 xs.dataReceived( "<iq type='error' id='test'/>")631 xs.dataReceived(b"<iq type='error' id='test'/>") 633 632 return d 634 633 635 634 … … 651 650 self.xmlstream.addObserver("/iq", cb, -1) 652 651 653 652 # Receive an untracked iq response 654 self.xmlstream.dataReceived( "<iq type='result' id='other'/>")653 self.xmlstream.dataReceived(b"<iq type='result' id='other'/>") 655 654 self.assertEquals(1, len(dispatched)) 656 655 self.assertFalse(getattr(dispatched[-1], 'handled', False)) 657 656 … … 665 664 self._streamStarted() 666 665 d = self.streamManager.request(self.request) 667 666 xs = self.xmlstream 668 xs.dataReceived( "<iq type='result' id='test'/>")667 xs.dataReceived(b"<iq type='result' id='test'/>") 669 668 self.assertNotIn('test', self.streamManager._iqDeferreds) 670 669 return d 671 670 … … 721 720 self.request.timeout = 60 722 721 d = self.streamManager.request(self.request) 723 722 self.clock.callLater(1, self.xmlstream.dataReceived, 724 "<iq type='result' id='test'/>")723 b"<iq type='result' id='test'/>") 725 724 self.clock.pump([1, 1]) 726 725 self.assertFalse(self.clock.calls) 727 726 return d … … 867 866 self.assertEquals(None, response.uri) 868 867 self.assertEquals('iq', response.name) 869 868 self.assertEquals('result', response['type']) 870 payload = response.elements().next()869 payload = next(response.elements()) 871 870 self.assertEqual(handler.payload, payload) 872 871 873 872 def test_successDeferred(self):
Note: See TracBrowser
for help on using the repository browser.