def test_reset_removed_button_and_analog_handlers_and_clears_stored_data( self): mock = Mock() rc = RemoteController() rc.tick(RemoteControllerCommand(buttons=[False] * 32, analog=[])) rc.on_analog_values([2, 4], mock) rc.on_analog_values([3], mock) rc.on_button_pressed(5, mock) rc.tick( RemoteControllerCommand( buttons=[True] * 32, analog=[255, 254, 253, 123, 43, 65, 45, 42])) self.assertEqual(3, mock.call_count) self.assertEqual(254, rc.analog_value(1)) self.assertTrue(rc.is_button_pressed(1)) mock.reset_mock() rc.reset() self.assertEqual(0, rc.analog_value(1)) self.assertFalse(rc.is_button_pressed(1)) rc.tick( RemoteControllerCommand( buttons=[True] * 32, analog=[255, 254, 253, 123, 43, 65, 45, 42])) self.assertEqual(0, mock.call_count)
def test_requested_channels_are_passed_to_analog_handlers(self): rc = RemoteController() mock24 = Mock() mock3 = Mock() mock_invalid = Mock() rc.on_analog_values([2, 4], mock24) rc.on_analog_values([3], mock3) rc.on_analog_values([3, 11], mock_invalid) rc.tick(RemoteControllerCommand(buttons=[False] * 32, analog=[255, 254, 253, 123, 43, 65, 45, 42])) self.assertEqual(mock24.call_count, 1) self.assertEqual(mock3.call_count, 1) # invalid channels are silently ignored self.assertEqual(mock_invalid.call_count, 0) self.assertEqual(mock24.call_args[0][0], [253, 43]) self.assertEqual(mock3.call_args[0][0], [123])