Exemple #1
0
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)
Exemple #2
0
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)
Exemple #3
0
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
Exemple #4
0
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