def test_input_is_active(): pin = MockPin(2) with InputDevice(pin, pull_up=True) as device: pin.drive_high() assert not device.is_active pin.drive_low() assert device.is_active
def test_mock_pin_edges(): pin = MockPin(2) assert pin.when_changed is None fired = Event() pin.function = 'input' pin.edges = 'both' assert pin.edges == 'both' pin.drive_low() assert not pin.state def changed(): fired.set() pin.when_changed = changed pin.drive_high() assert pin.state assert fired.wait(0) fired.clear() pin.edges = 'falling' pin.drive_low() assert not pin.state assert fired.wait(0) fired.clear() pin.drive_high() assert pin.state assert not fired.wait(0) assert pin.edges == 'falling'
def test_mock_pin_edges(): pin = MockPin(2) assert pin.when_changed is None fired = Event() pin.function = "input" pin.edges = "both" assert pin.edges == "both" pin.drive_low() assert not pin.state def changed(): fired.set() pin.when_changed = changed pin.drive_high() assert pin.state assert fired.wait(0) fired.clear() pin.edges = "falling" pin.drive_low() assert not pin.state assert fired.wait(0) fired.clear() pin.drive_high() assert pin.state assert not fired.wait(0) assert pin.edges == "falling"
def test_mock_pin_edges(): pin = MockPin(5) assert pin.when_changed is None fired = Event() pin.function = 'input' pin.edges = 'both' assert pin.edges == 'both' pin.drive_low() assert not pin.state def changed(): fired.set() pin.when_changed = changed pin.drive_high() assert pin.state assert fired.wait(0) fired.clear() pin.edges = 'falling' pin.drive_low() assert not pin.state assert fired.wait(0) fired.clear() pin.drive_high() assert pin.state assert not fired.wait(0) assert pin.edges == 'falling'
def test_input_is_active(): pin = MockPin(2) with InputDevice(pin, pull_up=True) as device: pin.drive_high() assert not device.is_active pin.drive_low() assert device.is_active
def test_input_event_activated(): event = Event() pin = MockPin(2) with DigitalInputDevice(pin) as device: device.when_activated = lambda: event.set() assert not event.is_set() pin.drive_high() assert event.is_set()
def test_input_event_activated(): event = Event() pin = MockPin(2) with DigitalInputDevice(pin) as device: device.when_activated = lambda: event.set() assert not event.is_set() pin.drive_high() assert event.is_set()
def test_input_is_active_high(): pin = MockPin(2) with InputDevice(pin, pull_up=False) as device: pin.drive_high() assert device.is_active assert repr(device) == '<gpiozero.InputDevice object on pin MOCK2, pull_up=False, is_active=True>' pin.drive_low() assert not device.is_active assert repr(device) == '<gpiozero.InputDevice object on pin MOCK2, pull_up=False, is_active=False>'
def test_input_motion_sensor(): pin = MockPin(2) with MotionSensor(pin) as sensor: pin.drive_high() assert sensor.wait_for_motion(1) assert sensor.motion_detected pin.drive_low() assert sensor.wait_for_no_motion(1) assert not sensor.motion_detected
def test_input_line_sensor(): pin = MockPin(2) with LineSensor(pin) as sensor: pin.drive_low() # logic is inverted for line sensor assert sensor.wait_for_line(1) assert sensor.line_detected pin.drive_high() assert sensor.wait_for_no_line(1) assert not sensor.line_detected
def test_input_smoothed_values(): pin = MockPin(2) with SmoothedInputDevice(pin) as device: device._queue.start() assert not device.is_active pin.drive_high() assert device.wait_for_active(1) pin.drive_low() assert device.wait_for_inactive(1)
def test_input_is_active_high(): pin = MockPin(2) with InputDevice(pin, pull_up=False) as device: pin.drive_high() assert device.is_active assert repr(device) == '<gpiozero.InputDevice object on pin MOCK2, pull_up=False, is_active=True>' pin.drive_low() assert not device.is_active assert repr(device) == '<gpiozero.InputDevice object on pin MOCK2, pull_up=False, is_active=False>'
def test_input_motion_sensor(): pin = MockPin(2) with MotionSensor(pin) as sensor: pin.drive_high() assert sensor.wait_for_motion(1) assert sensor.motion_detected pin.drive_low() assert sensor.wait_for_no_motion(1) assert not sensor.motion_detected
def test_input_line_sensor(): pin = MockPin(2) with LineSensor(pin) as sensor: pin.drive_low() # logic is inverted for line sensor assert sensor.wait_for_line(1) assert sensor.line_detected pin.drive_high() assert sensor.wait_for_no_line(1) assert not sensor.line_detected
def test_input_smoothed_values(): pin = MockPin(2) with SmoothedInputDevice(pin) as device: device._queue.start() assert not device.is_active pin.drive_high() assert device.wait_for_active(1) pin.drive_low() assert device.wait_for_inactive(1)
def test_input_button(): pin = MockPin(2) with Button(pin) as button: assert pin.pull == 'up' assert not button.is_pressed pin.drive_low() assert button.is_pressed assert button.wait_for_press(1) pin.drive_high() assert not button.is_pressed assert button.wait_for_release(1)
def test_input_button(): pin = MockPin(2) with Button(pin) as button: assert pin.pull == 'up' assert not button.is_pressed pin.drive_low() assert button.is_pressed assert button.wait_for_press(1) pin.drive_high() assert not button.is_pressed assert button.wait_for_release(1)
def test_input_partial_callback(): event = Event() pin = MockPin(2) def foo(a, b): event.set() return a + b bar = partial(foo, 1) baz = partial(bar, 2) with DigitalInputDevice(pin) as device: device.when_activated = baz assert not event.is_set() pin.drive_high() assert event.is_set()
def test_input_wait_active(): pin = MockPin(2) with DigitalInputDevice(pin) as device: pin.drive_high() assert device.wait_for_active(1) assert not device.wait_for_inactive(0)
def test_input_wait_active(): pin = MockPin(2) with DigitalInputDevice(pin) as device: pin.drive_high() assert device.wait_for_active(1) assert not device.wait_for_inactive(0)