diff --git a/tests/dbusmock/fprintd.py b/tests/dbusmock/fprintd.py index f4cf00e..c99315a 100644 --- a/tests/dbusmock/fprintd.py +++ b/tests/dbusmock/fprintd.py @@ -141,6 +141,7 @@ def AddDevice(self, device_name, num_enroll_stages, scan_type): device.fingers = {} device.claimed_user = None device.action = None + device.selected_finger = None device.verify_script = [] return path @@ -187,6 +188,7 @@ def Release(device): name='net.reactivated.Fprint.Error.ClaimDevice') device.claimed_user = None device.action = None + device.selected_finger = None def can_verify_finger(device, finger_name): # We should already have checked that there are enrolled fingers @@ -231,6 +233,7 @@ def VerifyStart(device, finger_name): if finger_name == 'any': finger_name = device.fingers[device.claimed_user][0] + device.selected_finger = finger_name device.EmitSignal(DEVICE_IFACE, 'VerifyFingerSelected', 's', [ finger_name ]) @@ -263,6 +266,7 @@ def VerifyStop(device): 'No verification to stop', name='net.reactivated.Fprint.Error.NoActionInProgress') device.action = None + device.selected_finger = None @dbus.service.method(DEVICE_IFACE, in_signature='s', out_signature='') @@ -331,6 +335,20 @@ def SetEnrolledFingers(device, user, fingers): device.fingers[user] = fingers +@dbus.service.method(DEVICE_MOCK_IFACE, + in_signature='', out_signature='s') +def GetSelectedFinger(device): + '''Convenience method to get the finger under verification + + Returns the finger name that the user has selected for verifying + ''' + if not device.selected_finger: + raise dbus.exceptions.DBusException( + 'Device is not verifying', + name='net.reactivated.Fprint.Error.NoActionInProgress') + + return device.selected_finger + @dbus.service.method(DEVICE_MOCK_IFACE, in_signature='a(sbi)', out_signature='') def SetVerifyScript(device, script):