def test_control_mode_1_read_write(self): """Registers read/written when using control mode 1 methods.""" rpm_value = 500 for motor_port_registers in MotorControlRegisters: motor_port_name = motor_port_registers.name motor_registers = motor_port_registers.value mode_1_register = motor_registers[MotorRegisterTypes.MODE_1_RPM] # create instance controller = EncoderMotorController(port=motor_port_name) controller.set_control_mode = Mock() controller.control_mode = Mock() controller.control_mode.return_value = MotorControlModes.MODE_1 # 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 = rpm_value # test controller.set_rpm_control(rpm_value) write_word_mock.assert_called_with(mode_1_register, rpm_value, little_endian=True, signed=True) self.assertEquals(controller.rpm_control(), rpm_value) read_signed_word_mock.assert_called_with(mode_1_register, little_endian=True)
def test_rpm_control_returns_none_if_not_on_mode_1(self): """rpm_control() returns None if not on Mode 1.""" controller = EncoderMotorController(port="M1") mode_mock = controller.control_mode = Mock() for mode in (MotorControlModes.MODE_0, MotorControlModes.MODE_2): mode_mock.return_value = mode self.assertEquals(controller.rpm_control(), None)