def runTest( self ): d = Dispatcher.getInstance() c = Context( 'Root' ) c.start() p = TestParent() d.add( obj=p, parentObj=None, context=c ) t = UasTransaction() d.add( obj=t, parentObj=None, context=c ) d.addListener( t, p ) s = 'SUBSCRIBE sip:chloe@cave;treats SIP/2.0\r\nTo: "Matt"<sip:matthew@cave>\r\nContact: "RileyMan"<sip:riley@cave>\r\nFrom: "Josh"<sip:joshua@cave>\r\n\r\n' m = Message( s ) e = MessageEvent( MessageEvent.EVENT_RX, message=m, transport='udp', localAddress='127.0.0.1', localPort=9000, remoteAddress='127.0.0.1', remotePort=9001 ) d.send( e, srcObj = p, dstObj = t ) s = 'SIP/2.0 100 Trying\r\nTo: "Matt"<sip:matthew@cave>\r\nContact: "RileyMan"<sip:riley@cave>\r\nFrom: "Josh"<sip:joshua@cave>\r\n\r\n' m = Message( s ) e = MessageEvent( MessageEvent.EVENT_TX, message=m, transport='udp', localAddress='127.0.0.1', localPort=9000, remoteAddress='127.0.0.1', remotePort=9001 ) d.send( e, srcObj = p, dstObj = t ) s = 'SIP/2.0 200 OK\r\nTo: "Matt"<sip:matthew@cave>\r\nContact: "RileyMan"<sip:riley@cave>\r\nFrom: "Josh"<sip:joshua@cave>\r\n\r\n' m = Message( s ) e = MessageEvent( MessageEvent.EVENT_TX, message=m, transport='udp', localAddress='127.0.0.1', localPort=9000, remoteAddress='127.0.0.1', remotePort=9001 ) d.send( e, srcObj = p, dstObj = t ) d.send( Event( t.EVENT_TIMER_J ), srcObj = p, dstObj = t ) c.stop()
def runTest( self ): c = Context( 'Root' ) c.start() o0 = self.TestObj() Dispatcher.add( obj=o0, parentObj=None, context=c ) o1 = self.TestObj() Dispatcher.add( obj=o1, parentObj=None, context=c ) Dispatcher.addListener( srcObj=o1, dstObj=o0 ) Dispatcher.send( event=Event( '1' ), srcObj=o0, dstObj=o1 ) assert( str(o1.lastHandler) == 'on1' ) Dispatcher.queue( event=Event( '2' ), srcObj=o0, dstObj=o1 ) #assert( str(o1.lastHandler) == 'on2' ) Dispatcher.send( event=Event( '3' ), srcObj=o0, dstObj=o1 ) #assert( str(o1.lastHandler) == 'on3' ) Dispatcher.notify( event=Event( '4' ), srcObj=o1 ) #assert( str(o1.lastHandler) == 'on4' ) Dispatcher.notify( event=Event( '4' ), srcObj=o1 ) #assert( str(o1.lastHandler) == 'on4' ) c.stop()
def runTest( self ): c = Context( 'Root' ) c.start() l = TestListener() Dispatcher.add( l, context = c ) config = TestConfiguration() e = NetEvent( NetEvent.EVENT_BIND, transport='tcp', localAddress=config.query( 'network.localAddress' ), localPort=config.query( 'network.localPort' ) ) o = TcpBinding( e ) Dispatcher.add( o, context=c ) Dispatcher.addListener( o, l ) o.addConfiguration( config ) e = NetEvent( NetEvent.EVENT_BIND, transport='tcp', localAddress=config.query( 'network.localAddress' ), localPort=config.query( 'network.localPort' ) ) Dispatcher.send( e, srcObj=l, dstObj=o ) sleep( config.query( 'test.timeout' ) ) packet = '' \ 'REGISTER sip:sip.example.com SIP/2.0\r\n' \ 'Via: SIP/2.0/UDP 192.168.1.1:5060;rport;branch=z9hG4bK58790139-438475846\r\n' \ 'Max-Forwards: 70\r\n' \ 'Allow: INVITE,BYE,CANCEL,ACK,INFO,PRACK,OPTIONS,SUBSCRIBE,NOTIFY,PUBLISH,MESSAGE,REFER,REGISTER,UPDATE\r\n' \ 'Supported: path,replaces,norefersub\r\n' \ 'User-Agent: IMS Phone 49\r\n' \ 'From: <sip:[email protected]>;tag=UA_58790139-438475847\r\n' \ 'To: <sip:[email protected]>\r\n' \ 'Call-ID: 58790139-438475845\r\n' \ 'CSeq: 1 REGISTER\r\n' \ 'Expires: 3600\r\n' \ 'Contact: 1<sip:[email protected]:5060;transport=tcp>;expires=3600\r\n' \ 'Authorization: Digest username="******",realm="sip.example.com",nonce="",uri="sip:sip.example.com",response=""\r\n' \ 'Content-Length: 0\r\n' \ '\r\n' e = NetEvent( BindingBase.EVENT_QUEUE, transport='tcp', localAddress=config.query( 'network.localAddress' ), localPort=config.query( 'network.localPort' ), remoteAddress=config.query( 'network.remoteAddress' ), remotePort=config.query( 'network.remotePort' ), packet=packet ) Dispatcher.send( e, srcObj=l, dstObj=o ) sleep( config.query( 'test.timeout' ) ) e = NetEvent( BindingBase.EVENT_WRITE, transport='tcp', localAddress=config.query( 'network.localAddress' ), localPort=config.query( 'network.localPort' ), remoteAddress=config.query( 'network.remoteAddress' ), remotePort=config.query( 'network.remotePort' ) ) Dispatcher.send( e, srcObj=l, dstObj=o ) sleep( config.query( 'test.timeout' ) ) e = NetEvent( BindingBase.EVENT_READ, transport='tcp', localAddress=config.query( 'network.localAddress' ), localPort=config.query( 'network.localPort' ), remoteAddress=config.query( 'network.remoteAddress' ), remotePort=config.query( 'network.remotePort' ) ) Dispatcher.send( e, srcObj=l, dstObj=o ) sleep( config.query( 'test.timeout' ) ) e = NetEvent( NetEvent.EVENT_UNBIND, transport='tcp', localAddress=config.query( 'network.localAddress' ), localPort=config.query( 'network.localPort' ) ) Dispatcher.send( e, srcObj=l, dstObj=o ) sleep( config.query( 'test.timeout' ) ) c.stop()
def runTest( self ): events = [ Event( 'event0' ), Event( 'event1' ), Event( 'event2' ) ] o = TestObj( events ) c = Context( 'context0' ) for event in events: future = c.queue( event, o, o ) time.sleep( 0.1 ) c.poll()
def runTest( self ): d = Dispatcher.getInstance() c = Context( 'Root' ) c.start() p = TestParent() d.add( obj=p, parentObj=None, context=c ) t = UacTransactionInvite() d.add( obj=t, parentObj=None, context=c ) d.addListener( t, p ) d.send( Event( 'INVITE' ), srcObj = p, dstObj = t ) d.send( Event( 'TimerA' ), srcObj = p, dstObj = t ) d.send( Event( '1xx' ), srcObj = p, dstObj = t ) d.send( Event( '3xx' ), srcObj = p, dstObj = t ) d.send( Event( 'TimerD' ), srcObj = p, dstObj = t ) c.stop()
def runTest( self ): d = Dispatcher.getInstance() c = Context( 'Root' ) c.start() o = self.TestObj() d.add( obj=o, parentObj=None, context=c ) o.Start() assert( str(o.state.currentState) == o.STATE_STARTED ) assert( str(o.lastHandler) == 'inStarted_onEnter' ) o.Pause() assert( str(o.state.currentState) == 'Paused' ) assert( str(o.lastHandler) == 'inPaused_onEnter' ) o.Stop() assert( str(o.state.currentState) == 'Stopped' ) assert( str(o.lastHandler) == 'inStopped_onEnter' ) c.stop()
def runTest( self ): d = Dispatcher.getInstance() c = Context( 'Root' ) c.start() dialog = UasDialogSubscribe() #FIXME: pass event? d.add( obj=dialog, parentObj=None, context=c ) s = 'SUBSCRIBE sip:chloe@cave;treats SIP/2.0\r\nTo: "Matt"<sip:matthew@cave>\r\nContact: "RileyMan"<sip:riley@cave>\r\nFrom: "Josh"<sip:joshua@cave>\r\nExpires: 3600\r\nCall-ID: abcd\r\n\r\n' m = Message( s ) e = MessageEvent( MessageEvent.EVENT_RX, message=m, transport='udp', localAddress='127.0.0.1', localPort=9000, remoteAddress='127.0.0.1', remotePort=9001 ) d.send( e, srcObj = dialog, dstObj = dialog ) s = 'SIP/2.0 100 Trying\r\nTo: "Matt"<sip:matthew@cave>\r\nContact: "RileyMan"<sip:riley@cave>\r\nFrom: "Josh"<sip:joshua@cave>\r\nCall-ID: abcd\r\n\r\n' m = Message( s ) e = MessageEvent( MessageEvent.EVENT_RX, message=m, transport='udp', localAddress='127.0.0.1', localPort=9000, remoteAddress='127.0.0.1', remotePort=9001 ) d.send( e, srcObj = dialog, dstObj = dialog ) s = 'SIP/2.0 200 OK\r\nTo: "Matt"<sip:matthew@cave>\r\nContact: "RileyMan"<sip:riley@cave>\r\nFrom: "Josh"<sip:joshua@cave>\r\nCall-ID: abcd\r\n\r\n' m = Message( s ) e = MessageEvent( MessageEvent.EVENT_RX, message=m, transport='udp', localAddress='127.0.0.1', localPort=9000, remoteAddress='127.0.0.1', remotePort=9001 ) d.send( e, srcObj = dialog, dstObj = dialog ) s = 'SUBSCRIBE sip:chloe@cave;treats SIP/2.0\r\nTo: "Matt"<sip:matthew@cave>\r\nContact: "RileyMan"<sip:riley@cave>\r\nFrom: "Josh"<sip:joshua@cave>\r\nCall-ID: abcd\r\nExpires: 0\r\n\r\n' m = Message( s ) e = MessageEvent( MessageEvent.EVENT_RX, message=m, transport='udp', localAddress='127.0.0.1', localPort=9000, remoteAddress='127.0.0.1', remotePort=9001 ) d.send( e, srcObj = dialog, dstObj = dialog ) s = 'SIP/2.0 200 OK\r\nTo: "Matt"<sip:matthew@cave>\r\nContact: "RileyMan"<sip:riley@cave>\r\nFrom: "Josh"<sip:joshua@cave>\r\n\r\n' m = Message( s ) e = MessageEvent( MessageEvent.EVENT_RX, message=m, transport='udp', localAddress='127.0.0.1', localPort=9000, remoteAddress='127.0.0.1', remotePort=9001 ) d.send( e, srcObj = dialog, dstObj = dialog ) sleep( 4 ) assert 1
def runTest( self ): events = [ Event( 'event0' ), Event( 'event1' ), Event( 'event2' ) ] o = TestObj( events ) c = Context( 'context0' ) c.start() for event in events: future = c.queue( event, o, o ) #print future #future.cancel() #print future() #print future time.sleep( 0.1 ) c.stop()