def test_control_mode_0_read_write(self): """Registers read/written when using control mode 0 methods.""" power_value = 50 for motor_port_registers in MotorControlRegisters: motor_port_name = motor_port_registers.name motor_registers = motor_port_registers.value mode_0_power_register = motor_registers[ MotorRegisterTypes.MODE_0_POWER] # create instance controller = EncoderMotorController(port=motor_port_name) controller.set_control_mode = Mock() controller.control_mode = Mock() controller.control_mode.return_value = MotorControlModes.MODE_0 # setup r/w mocks write_word_mock = controller._mcu_device.write_word = Mock() read_signed_word_mock = controller._mcu_device.read_signed_word = Mock( ) read_signed_word_mock.return_value = power_value # test controller.set_power(power_value) write_word_mock.assert_called_with(mode_0_power_register, power_value, little_endian=True, signed=True) self.assertEquals(controller.power(), power_value) read_signed_word_mock.assert_called_with(mode_0_power_register, little_endian=True)
def test_power_returns_none_if_not_on_mode_0(self): """power() returns None if not on Mode 0.""" controller = EncoderMotorController(port="M1") mode_mock = controller.control_mode = Mock() for mode in (MotorControlModes.MODE_1, MotorControlModes.MODE_2): mode_mock.return_value = mode self.assertEquals(controller.power(), None)