def test_send_when_not_open_must_fail(self):
     '''
     Test that sending a command when the device is not open will fail.
     '''
     mock_monitor = mock()
     mock_device = mock()
     controller = DeviceController(mock_device,
                                   usb_transfer_types.RAW,
                                   mock_monitor,
                                   logger=self._logger)
     when(mock_device).is_open().thenReturn(False)
     self.assertFalse(controller.send('foo'))
     verify(mock_device, times=0).send(any(), any())
 def test_send_recv_must_fail(self):
     '''
     Generate an IOError on receive.
     '''
     mock_monitor = mock()
     mock_device = mock()
     controller = DeviceController(mock_device,
                                   usb_transfer_types.RAW,
                                   mock_monitor,
                                   logger=self._logger)
     when(mock_device).is_open().thenReturn(True)
     when(mock_device).receive().thenRaise(IOError())
     when(mock_device).get_packet_size().thenReturn(64)
     self.assertFalse(controller.send('foo'))
     verify(mock_device, times=1).send(any())
     verify(mock_device, times=1).receive()
 def test_send_command_understood(self):
     '''
     Test that the device understood the command.
     '''
     mock_monitor = mock()
     mock_device = mock()
     controller = DeviceController(mock_device,
                                   usb_transfer_types.RAW,
                                   mock_monitor,
                                   logger=self._logger)
     when(mock_device).is_open().thenReturn(True)
     data = 'ack' + '\0' * (64 - len('ack'))
     when(mock_device).receive().thenReturn(data)
     when(mock_device).get_packet_size().thenReturn(64)
     self.assertTrue(controller.send('foo'))
     verify(mock_device, times=1).send(any())
     verify(mock_device, times=1).receive()