def test_get_gpio_pin_digital_state_bad_mode() -> None: """Test that we cannot get a digital state in the wrong mode.""" backend = SBArduinoConsoleBackend( "TestBoard", console_class=MockConsole, ) backend._pins[4].mode = GPIOPinMode.DIGITAL_INPUT_PULLDOWN with pytest.raises(ValueError): backend.get_gpio_pin_digital_state(4)
def test_get_gpio_pin_digital_state() -> None: """Test that we can get a digital state.""" backend = SBArduinoConsoleBackend( "TestBoard", console_class=MockConsole, ) backend._pins[10].digital_state = False assert not backend.get_gpio_pin_digital_state(10) backend._pins[10].digital_state = True assert backend.get_gpio_pin_digital_state(10)
def test_ultrasound_pulse() -> None: """Test that we can read an ultrasound pulse time.""" backend = SBArduinoConsoleBackend( "TestBoard", console_class=MockConsole, ) backend._console.next_input = "2345" # type: ignore assert backend.get_ultrasound_pulse(3, 4) == timedelta(microseconds=2345) # Check backend updated its view of what modes the pins are in now. assert backend.get_gpio_pin_mode(3) is GPIOPinMode.DIGITAL_OUTPUT assert backend.get_gpio_pin_digital_state(3) is False assert backend.get_gpio_pin_mode(4) is GPIOPinMode.DIGITAL_INPUT
def test_ultrasound_distance() -> None: """Test that we can read an ultrasound distance.""" backend = SBArduinoConsoleBackend( "TestBoard", console_class=MockConsole, ) backend._console.next_input = "1.23" # type: ignore metres = backend.get_ultrasound_distance(3, 4) assert metres is not None assert isclose(metres, 1.23) # Check backend updated its view of what modes the pins are in now. assert backend.get_gpio_pin_mode(3) is GPIOPinMode.DIGITAL_OUTPUT assert backend.get_gpio_pin_digital_state(3) is False assert backend.get_gpio_pin_mode(4) is GPIOPinMode.DIGITAL_INPUT