Changeset 4:e8e7d5543a6f
- Timestamp:
- Aug 22, 2007, 5:00:48 PM (15 years ago)
- Branch:
- default
- Convert:
- svn:b33ecbfc-034c-dc11-8662-000475d9059e/trunk@5
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
setup.py
r3 r4 8 8 9 9 setup(name='wokkel', 10 version='0. 1.0',10 version='0.2.0', 11 11 description='Twisted Jabber support library', 12 12 author='Ralph Meijer', -
wokkel/iwokkel.py
r2 r4 19 19 xmlstream = Attribute("""The managed XML stream""") 20 20 21 def setHandlerParent(parent): 22 """ 23 Set the parent of the handler. 24 25 @type parent: L{IXMPPHandlerCollection} 26 """ 27 28 def disownHandlerParent(parent): 29 """ 30 Remove the parent of the handler. 31 32 @type parent: L{IXMPPHandlerCollection} 33 """ 34 21 35 def makeConnection(xs): 22 36 """ … … 60 74 """ 61 75 76 class IXMPPHandlerCollection(Interface): 77 """ 78 Collection of handlers. 79 80 Contain several handlers and manage their connection. 81 """ 82 83 def __iter__(): 84 """ 85 Get an iterator over all child handlers. 86 """ 87 88 def addHandler(handler): 89 """ 90 Add a child handler. 91 92 @type handler: L{IXMPPHandler} 93 """ 94 95 def removeHandler(handler): 96 """ 97 Remove a child handler. 98 99 @type handler: L{IXMPPHandler} 100 """ 62 101 63 102 class IDisco(Interface): -
wokkel/subprotocols.py
r1 r4 16 16 from twisted.words.xish.domish import IElement 17 17 18 from wokkel.iwokkel import IXMPPHandler 18 from wokkel.iwokkel import IXMPPHandler, IXMPPHandlerCollection 19 19 20 20 class XMPPHandler(object): 21 21 implements(IXMPPHandler) 22 23 def setHandlerParent(self, parent): 24 self.parent = parent 25 self.parent.addHandler(self) 26 27 def disownHandlerParent(self, parent): 28 self.parent.removeHandler(self) 29 self.parent = None 22 30 23 31 def makeConnection(self, xs): … … 49 57 L{xmlstream.XmlStream} for details. 50 58 """ 51 self.manager.send(obj) 52 53 class XMPPHandlerContainer(object): 54 """ 55 Container for XMPP subprotocol handlers. 56 """ 59 self.parent.send(obj) 60 61 62 class XMPPHandlerCollection(object): 63 """ 64 Collection of XMPP subprotocol handlers. 65 66 This allows for grouping of subprotocol handlers, but is not an 67 L{XMPPHandler} itself, so this is not recursive. 68 69 @ivar xmlstream: Currently managed XML stream. 70 @type xmlstream: L{XmlStream} 71 @ivar handlers: List of protocol handlers. 72 @type handlers: L{list} of objects providing 73 L{IXMPPHandler} 74 """ 75 76 implements(IXMPPHandlerCollection) 57 77 58 78 def __init__(self): … … 78 98 79 99 self.handlers.append(handler) 80 handler.manager = self81 100 82 101 # get protocol handler up to speed when a connection has already … … 91 110 """ 92 111 93 handler.manager = None94 112 self.handlers.remove(handler) 95 113 96 class StreamManager(XMPPHandlerCo ntainer):114 class StreamManager(XMPPHandlerCollection): 97 115 """ 98 116 Business logic representing a managed XMPP connection. … … 103 121 using L{addHandler}. 104 122 105 @ivar xmlstream: currently managed XML stream106 @type xmlstream: L{XmlStream}107 @ivar handlers: list of protocol handlers108 @type handlers: L{list} of objects providing109 L{IXMPPHandler}110 123 @ivar logTraffic: if true, log all traffic. 111 124 @type logTraffic: L{bool} -
wokkel/test/test_pubsub.py
r1 r4 23 23 def test_onPublishNoNode(self): 24 24 handler = pubsub.PubSubService() 25 handler. manager= self25 handler.parent = self 26 26 iq = domish.Element((None, 'iq')) 27 27 iq['from'] = 'user@example.org' … … 41 41 42 42 handler = Handler() 43 handler. manager= self43 handler.parent = self 44 44 iq = domish.Element((None, 'iq')) 45 45 iq['type'] = 'set' … … 54 54 def test_onOptionsGet(self): 55 55 handler = pubsub.PubSubService() 56 handler. manager= self56 handler.parent = self 57 57 iq = domish.Element((None, 'iq')) 58 58 iq['from'] = 'user@example.org' -
wokkel/test/test_subprotocols.py
r1 r4 22 22 23 23 24 class DummyXMPPHandler( object):24 class DummyXMPPHandler(subprotocols.XMPPHandler): 25 25 def __init__(self): 26 26 self.doneMade = 0 … … 56 56 57 57 handler = subprotocols.XMPPHandler() 58 handler. manager= DummyStreamManager()58 handler.parent = DummyStreamManager() 59 59 handler.send('<presence/>') 60 self.assertEquals(['<presence/>'], handler. manager.outlist)60 self.assertEquals(['<presence/>'], handler.parent.outlist) 61 61 62 62 … … 90 90 sm = self.streamManager 91 91 handler = DummyXMPPHandler() 92 sm.addHandler(handler)92 handler.setHandlerParent(sm) 93 93 xs = xmlstream.XmlStream(xmlstream.Authenticator()) 94 94 sm._connected(xs) … … 104 104 sm = self.streamManager 105 105 handler = DummyXMPPHandler() 106 sm.addHandler(handler)106 handler.setHandlerParent(sm) 107 107 xs = xmlstream.XmlStream(xmlstream.Authenticator()) 108 108 sm._authd(xs) … … 118 118 sm = self.streamManager 119 119 handler = DummyXMPPHandler() 120 sm.addHandler(handler)120 handler.setHandlerParent(sm) 121 121 xs = xmlstream.XmlStream(xmlstream.Authenticator()) 122 122 sm._disconnected(xs) … … 131 131 sm = self.streamManager 132 132 handler = DummyXMPPHandler() 133 sm.addHandler(handler)133 handler.setHandlerParent(sm) 134 134 self.assertIn(handler, sm) 135 self.assertIdentical(sm, handler. manager)135 self.assertIdentical(sm, handler.parent) 136 136 137 137 self.assertEquals(0, handler.doneMade) … … 153 153 sm._authd(xs) 154 154 handler = DummyXMPPHandler() 155 sm.addHandler(handler)155 handler.setHandlerParent(sm) 156 156 157 157 self.assertEquals(1, handler.doneMade) … … 165 165 sm = self.streamManager 166 166 handler = DummyXMPPHandler() 167 sm.addHandler(handler)168 sm.removeHandler(handler)167 handler.setHandlerParent(sm) 168 handler.disownHandlerParent(sm) 169 169 self.assertNotIn(handler, sm) 170 self.assertIdentical(None, handler. manager)170 self.assertIdentical(None, handler.parent) 171 171 172 172 def test_sendInitialized(self):
Note: See TracChangeset
for help on using the changeset viewer.