Permit partial, partialmethod, and wraps to be used with event handlers
This commit is contained in:
Dave Jones
2016-09-20 11:08:52 +01:00
parent 8d173d0df7
commit 9046ea3033
2 changed files with 28 additions and 4 deletions

View File

@@ -10,6 +10,7 @@ str = type('')
import sys
import pytest
from threading import Event
from functools import partial
from gpiozero.pins.mock import (
MockPin,
@@ -79,6 +80,20 @@ def test_input_event_deactivated():
pin.drive_low()
assert event.is_set()
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: