def testWriteTCP(self): """ Test what happens when we start a write event to a TCP serial port """ self._log.debug( "\n\n-------------------------------testWriteTCP-------------------------------" ) self._log.debug( "\nInitializng TCP server" ) TCPServ = TestTCPServer(4747) TCPServ.start() try: self._log.debug( "\nInitializing serial eventhandler" ) testCfg = getDictFromXmlString(testConfigTCP) self._log.debug( "\ntestCfg : %s" %testCfg ) eh=Serial(self._router) self.assertNotEqual( eh, None ) eh.configure(testCfg['eventInterface']) eh.start() self._log.debug( "\nCreating test event :" ) testEvent = makeEvent( 'internal/test/serial', 'serial/test/1', {} ) self._log.debug( testEvent ) self._log.debug( "\nTesting eventhandler..." ) eh.handleEvent( testEvent ) time.sleep(1) portlist = eh.getSerialPorts() self._log.debug( "\nList of active ports : %s" %portlist ) data = TCPServ.data self._log.debug( "\nTCP server recieved : ##%s##" %data ) assert data == "turn lights onsuccess!" eh.stop() finally: TCPServ.stop()
def testWriteTCPAndLocal(self): """ Test what happens when we start a write event to a TCP serial port and a Local one at the same time """ self._log.debug( "\n\n-------------------------------testWriteTCPAndLocal-------------------------------" ) self._log.debug( "\nInitializng TCP server" ) TCPServ = TestTCPServer(4747) TCPServ.start() try: self._log.debug( "\nInitializing serial eventhandler" ) testCfg = getDictFromXmlString(testConfigLocalAndTCP) self._log.debug( "\ntestCfg : %s" %testCfg ) eh=Serial(self._router) self.assertNotEqual( eh, None ) self._log.debug( "\n Configuring serial eventhandler" ) eh.configure(testCfg['eventInterface']) eh.start() self._log.debug( "\nCreating test events :" ) TCPSerialevent = makeEvent( 'internal/test/serial', 'serial/test/1', {} ) localSerialevent = makeEvent( 'internal/test/serial', 'serial/test/2', {} ) self._log.debug( "%s and %s" %(localSerialevent,TCPSerialevent) ) self._log.debug( "\nSending TCP event..." ) eh.handleEvent( TCPSerialevent ) self._log.debug( "\nSending local event..." ) eh.handleEvent( localSerialevent ) time.sleep(1) portlist = eh.getSerialPorts() self._log.debug( "\nList of active ports : %s" %portlist ) TCPData = TCPServ.data self._log.debug( "\nTCP server recieved : ##%s##" %TCPData ) assert TCPData == 'ABC' self.assertEqual( len(self._router._pubs), 1 ) self.assertEqual( self._router._pubs[0][1].getType(), "http://id.webbrick.co.uk/events/serial/receive" ) self.assertEqual( self._router._pubs[0][1].getSource(), "serial-2/receive" ) self.assertEqual( self._router._pubs[0][1].getPayload()['data'], "66;67;68:" ) self._log.debug( "\nLocal serial recieved local data ") eh.stop() finally : TCPServ.stop() time.sleep(1)
def testDisconnectRecover(self): """ Test recieve callback is working correctly for serial ports """ self._log.debug( "\n\n-------------------------------testReadTCP-------------------------------" ) TCPServ = TestTCPServer(4747) TCPServ.start() self._log.debug( "\nInitializing serial eventhandler with tcp connection configured" ) testCfg = getDictFromXmlString(testConfigTCP) eh = Serial(self._router) self.assertNotEqual( eh, None ) eh.configure(testCfg['eventInterface']) eh.start() self._log.debug ( "Sending test data" ) TCPServ.send("hello\r") time.sleep(0.5) self.assertEqual( len(self._router._pubs), 1 ) self.assertEqual( self._router._pubs[0][1].getType(), "lighting/update" ) self.assertEqual( self._router._pubs[0][1].getSource(), "light1/on" ) self.assertEqual( self._router._pubs[0][1].getPayload()['lightval'], "1") TCPServ.stop() time.sleep(0.5) TCPServ = TestTCPServer(4747) TCPServ.start() testEvent = makeEvent( 'internal/test/serial', 'serial/test/1', {} ) self._log.debug( testEvent ) self._log.debug( "\nTesting eventhandler..." ) eh.handleEvent( testEvent ) eh.handleEvent( testEvent ) eh.handleEvent( testEvent ) eh.handleEvent( testEvent ) TCPServ.send("hello\r") time.sleep(1) assert TCPServ.read() == "turn lights onsuccess!turn lights onsuccess!" self.assertEqual( len(self._router._pubs), 2 ) self.assertEqual( self._router._pubs[1][1].getType(), "lighting/update" ) self.assertEqual( self._router._pubs[1][1].getSource(), "light1/on" ) self.assertEqual( self._router._pubs[1][1].getPayload()['lightval'], "1") time.sleep(0.5)
def testWriteLocalCustomPayload(self): """ Test what happens when we start a write event with a custom payload to a Local serial port. """ self._log.debug( "\n\n-------------------------------testWriteLocalCustomPayLoad-------------------------------" ) testCfg = getDictFromXmlString(testConfigLocal) self._log.debug( "testCfg %s" % testCfg ) eh = Serial(self._router) self.assertNotEqual( eh, None) eh.configure(testCfg['eventInterface']) eh.start() testEvent = makeEvent( 'internal/test/serial', 'serial/test/2', {'cmd':'write','data':'66;67;68:','address':'serial-2'} ) eh.handleEvent( testEvent ) time.sleep(2) portlist = eh.getSerialPorts() self._log.debug(portlist) self.assertEqual( len(self._router._pubs), 1 ) self.assertEqual( self._router._pubs[0][1].getType(), "http://id.webbrick.co.uk/events/serial/receive" ) self.assertEqual( self._router._pubs[0][1].getSource(), "serial-2/receive" ) self.assertEqual( self._router._pubs[0][1].getPayload()['data'], "66;67;68:" ) eh.stop()