def test_ZigBeeOutput_throws_exception(self, zo, t): queue = HMQueue() thread = ZigBeeOutputThread(queue, 1) zo.side_effect = KeyError('boom') thread.zigbeeConnect() self.assertFalse(thread.connected) self.assertFalse(thread.talking)
def test_run(self): queue = HMQueue() packet = 555 thread = ZigBeeOutputThread(queue, 1) thread.connectAndProcessZigBeeCommands = MagicMock() thread.run() thread.connectAndProcessZigBeeCommands.assert_called_once_with()
def test_processCommandToZigBee_with_IOError_in_SendCommand(self): queue = HMQueue() packet = 555 thread = ZigBeeOutputThread(queue, 1) thread.output_queue = MagicMock() thread.output_queue.receive = MagicMock() thread.connected = True thread.talking = True thread.done = False thread.zigbee_output = MagicMock() thread.zigbee_output.sendCommand = MagicMock(side_effect=IOError()) thread.processCommandToZigBee() self.assertFalse(thread.connected) self.assertFalse(thread.talking) self.assertFalse(thread.done)
def test_processCconnectAndProcessZigBeeCommands(self): queue = HMQueue() packet = 555 thread = ZigBeeOutputThread(queue, 1) thread.connected = False thread.talking = True thread.done = False thread.zigbeeConnect = MagicMock(return_value=True) thread.processCommandToZigBee = MagicMock( side_effect=KeyboardInterrupt) thread.connectAndProcessZigBeeCommands() thread.zigbeeConnect.assert_called_once_with() thread.zigbeeConnect.assert_called_once_with() self.assertTrue(thread.connected) self.assertTrue(thread.talking) self.assertFalse(thread.done)
def test_processCommandToZigBee(self, qr): packet = {} queue = HMQueue() value = 555 data = {} packet['value'] = value packet['data'] = data packet['id'] = 0xab thread = ZigBeeOutputThread(queue, 1) qr.return_value = packet thread.zigbee_output = MagicMock() thread.zigbee_output.sendCommand = MagicMock() thread.connected = True thread.talking = True thread.done = False thread.processCommandToZigBee() thread.zigbee_output.sendCommand.assert_called_once_with(**packet) self.assertTrue(thread.connected) self.assertTrue(thread.talking) thread.done = False
def startZigBee(self, in_test_mode): ''' Start the ZigBee processing. This consists of three parts: #. Start the ZigBeeQueue which used Queue, a thread safe queue for communcating between threads. #. Start the ZigBeeOutputThread which talks to the ZigBee server. This is a slow process. #. Start the ZigBeeOutputProcessing object which takes massages sent to ZigBee on the main thread and sends them to the ZigBee thread. ''' self.queue = HMQueue('ZigBeeInput') self.in_test_mode = in_test_mode self.zig = ZigBeeOutputStep(self.queue) self.ZigBeeOutputThread = ZigBeeOutputThread(self.queue, self.in_test_mode) self.ZigBeeOutputThread.start()
def test_logger_name(self): queue = HMQueue() thread = ZigBeeOutputThread(queue, 1) self.assertEqual(thread.logger_name, Constants.LogKeys.outputsZigBee)