def testUdpDevice(self): """ Test UdpDevice class """ console.terse("{0}\n".format(self.testUdpDevice.__doc__)) stack = stacking.UdpStack() self.assertIsInstance(stack.local, devicing.IpLocalDevice) self.assertEqual(stack.local.uid, 1) self.assertEqual(stack.local.name, "Device{0}".format(stack.local.uid)) self.assertEqual(stack.local.ha, ('127.0.0.1', stacking.UdpStack.Port)) self.assertEqual(stack.local.kind, None) self.assertEqual(stack.aha, ('0.0.0.0', stacking.UdpStack.Port)) device = devicing.IpDevice(stack=stack) self.assertEqual(device.stack, stack) self.assertEqual(device.uid, 2) # stacks .local has uid 1 self.assertEqual(device.name, "Device{0}".format(device.uid)) self.assertEqual(device.ha, ('127.0.0.1', stacking.UdpStack.Port)) self.assertEqual(device.kind, None) device = devicing.IpRemoteDevice(stack=stack) self.assertIs(device.stack, stack) self.assertEqual(device.uid, 3) self.assertEqual(device.name, "Device{0}".format(device.uid)) self.assertEqual(device.ha, ('127.0.0.1', stacking.UdpStack.Port)) self.assertEqual(device.kind, None) stack.close() ha = ('127.0.0.1', 8000) stack = stacking.UdpStack(ha=ha) self.assertIsInstance(stack.local, devicing.IpLocalDevice) self.assertEqual(stack.local.uid, 1) self.assertEqual(stack.local.name, "Device{0}".format(stack.local.uid)) self.assertEqual(stack.local.ha, ha) self.assertEqual(stack.local.kind, None) self.assertEqual(stack.aha, ha) device = devicing.IpDevice(stack=stack, ha=ha) self.assertEqual(device.stack, stack) self.assertEqual(device.uid, 2) # stacks .local has uid 1 self.assertEqual(device.name, "Device{0}".format(device.uid)) self.assertEqual(device.ha, ha) self.assertEqual(device.kind, None) self.assertEqual(device.host, ha[0]) self.assertEqual(device.port, ha[1]) device = devicing.IpRemoteDevice(stack=stack, ha=ha) self.assertIs(device.stack, stack) self.assertEqual(device.uid, 3) self.assertEqual(device.name, "Device{0}".format(device.uid)) self.assertEqual(device.ha, ha) self.assertEqual(device.kind, None) self.assertEqual(device.host, ha[0]) self.assertEqual(device.port, ha[1]) stack.close()
def testUdpStack(self): """ Test UdpStack class """ console.terse("{0}\n".format(self.testUdpStack.__doc__)) stack = stacking.UdpStack() self.assertIsInstance(stack.local, devicing.IpLocalDevice) self.assertEqual(stack.local.uid, 1) self.assertEqual(stack.local.name, "Device{0}".format(stack.local.uid)) self.assertEqual(stack.local.ha, ('127.0.0.1', stacking.UdpStack.Port)) self.assertEqual(stack.local.kind, None) self.assertEqual(stack.aha, ('0.0.0.0', stacking.UdpStack.Port)) stack.close() ha = ('127.0.0.1', 8000) stack = stacking.UdpStack(ha=ha) self.assertIsInstance(stack.local, devicing.IpLocalDevice) self.assertEqual(stack.local.uid, 1) self.assertEqual(stack.local.name, "Device{0}".format(stack.local.uid)) self.assertEqual(stack.local.ha, ha) self.assertEqual(stack.local.kind, None) self.assertEqual(stack.aha, ha) stack.close()
def testUdpStacks(self): """ Test two stacks sending packets """ console.terse("{0}\n".format(self.testUdpStacks.__doc__)) stamper = Stamper() alpha = stacking.UdpStack(name='alpha', port=8000) self.assertEqual(alpha.name, "alpha") self.assertEqual(alpha.ha, ('127.0.0.1', 8000)) self.assertEqual(alpha.aha, ('0.0.0.0', 8000)) self.assertIs(alpha.handler.opened, True) self.assertEqual(len(alpha.remotes), 0) remote = devicing.IpRemoteDevice(stack=alpha, name='BetaRemote', ha=('localhost', 8002)) self.assertEqual(remote.uid, 2) self.assertEqual(remote.name, 'BetaRemote') self.assertEqual(remote.ha, ('127.0.0.1', 8002)) alpha.addRemote(remote) beta = stacking.UdpStack(name='beta', port=8002) self.assertEqual(beta.name, "beta") self.assertEqual(beta.ha, ('127.0.0.1', 8002)) self.assertEqual(beta.aha, ('0.0.0.0', 8002)) self.assertIs(beta.handler.opened, True) self.assertEqual(len(beta.remotes), 0) remote = devicing.IpRemoteDevice(stack=beta, name='AlphaRemote', ha=('localhost', 8000)) self.assertEqual(remote.uid, 2) self.assertEqual(remote.name, 'AlphaRemote') self.assertEqual(remote.ha, ('127.0.0.1', 8000)) beta.addRemote(remote) msg2beta = "Hello beta it's me alpha." alpha.message(msg2beta) msg2alpha = "Hi alpha from beta." beta.message(msg2alpha) #timer = Timer(duration=0.5) while (alpha.txMsgs or alpha.txPkts or alpha.rxPkts or alpha.rxMsgs or beta.txMsgs or beta.txPkts or beta.rxPkts or beta.rxMsgs): alpha.serviceAllTx() beta.serviceAllTx() time.sleep(0.1) alpha.serviceAllRx() beta.serviceAllRx() stamper.advanceStamp(0.1) self.assertEqual(len(alpha.rxMsgs), 0) self.assertEqual(len(beta.rxMsgs), 0) self.assertEqual(alpha.stats['msg_received'], 1) self.assertEqual(beta.stats['msg_received'], 1) msg2beta = "Whats up beta?" packet = packeting.Packet(packed=msg2beta.encode('ascii')) alpha.transmit(packet) msg2alpha = "Just hanging alpha." packet = packeting.Packet(packed=msg2alpha.encode('ascii')) beta.transmit(packet) while (alpha.txMsgs or alpha.txPkts or alpha.rxPkts or alpha.rxMsgs or beta.txMsgs or beta.txPkts or beta.rxPkts or beta.rxMsgs): alpha.serviceAllTx() beta.serviceAllTx() time.sleep(0.1) alpha.serviceAllRx() beta.serviceAllRx() stamper.advanceStamp(0.1) self.assertEqual(len(alpha.rxMsgs), 0) self.assertEqual(len(beta.rxMsgs), 0) self.assertEqual(alpha.stats['msg_received'], 2) self.assertEqual(beta.stats['msg_received'], 2) alpha.close() beta.close() alpha.reopen() beta.reopen() alpha.close() beta.close()