mirror of
https://github.com/KevinMidboe/python-gpiozero.git
synced 2025-10-29 17:50:37 +00:00
Fix #28
Re-order the test bindings to prefer using no parameters if possible
This commit is contained in:
@@ -75,18 +75,20 @@ class WaitableInputDevice(InputDevice):
|
||||
raise InputDeviceError('value must be None or a callable')
|
||||
else:
|
||||
# Try binding ourselves to the argspec of the provided callable.
|
||||
# If this works, assume the function is capable of accepting us
|
||||
# as the only (mandatory) parameter.
|
||||
# If this works, assume the function is capable of accepting no
|
||||
# parameters
|
||||
try:
|
||||
inspect.getcallargs(fn, self)
|
||||
@wraps(fn)
|
||||
def wrapper():
|
||||
return fn(self)
|
||||
return wrapper
|
||||
inspect.getcallargs(fn)
|
||||
return fn
|
||||
except TypeError:
|
||||
try:
|
||||
inspect.getcallargs(fn)
|
||||
return fn
|
||||
# If the above fails, try binding with a single parameter
|
||||
# (ourselves). If this works, wrap the specified callback
|
||||
inspect.getcallargs(fn, self)
|
||||
@wraps(fn)
|
||||
def wrapper():
|
||||
return fn(self)
|
||||
return wrapper
|
||||
except TypeError:
|
||||
raise InputDeviceError(
|
||||
'value must be a callable which accepts up to one '
|
||||
|
||||
Reference in New Issue
Block a user