ef805f2341
It can be convenient for device users to check what it supports, without having multiple functions to check each single feature. So expose this and add tests.
59 lines
1.6 KiB
Python
Executable file
59 lines
1.6 KiB
Python
Executable file
#!/usr/bin/python3
|
|
|
|
import gi
|
|
gi.require_version('FPrint', '2.0')
|
|
from gi.repository import FPrint, GLib
|
|
|
|
ctx = GLib.main_context_default()
|
|
|
|
c = FPrint.Context()
|
|
c.enumerate()
|
|
devices = c.get_devices()
|
|
|
|
d = devices[0]
|
|
del devices
|
|
|
|
assert d.get_driver() == "synaptics"
|
|
assert not d.has_feature(FPrint.DeviceFeature.CAPTURE)
|
|
assert d.has_feature(FPrint.DeviceFeature.IDENTIFY)
|
|
assert d.has_feature(FPrint.DeviceFeature.VERIFY)
|
|
assert not d.has_feature(FPrint.DeviceFeature.DUPLICATES_CHECK)
|
|
assert d.has_feature(FPrint.DeviceFeature.STORAGE)
|
|
assert d.has_feature(FPrint.DeviceFeature.STORAGE_LIST)
|
|
assert d.has_feature(FPrint.DeviceFeature.STORAGE_DELETE)
|
|
assert not d.has_feature(FPrint.DeviceFeature.STORAGE_CLEAR)
|
|
|
|
d.open_sync()
|
|
|
|
template = FPrint.Print.new(d)
|
|
|
|
def enroll_progress(*args):
|
|
assert d.get_finger_status() == FPrint.FingerStatusFlags.NEEDED
|
|
print('enroll progress: ' + str(args))
|
|
|
|
# List, enroll, list, verify, delete, list
|
|
print("enrolling")
|
|
assert d.get_finger_status() == FPrint.FingerStatusFlags.NONE
|
|
p = d.enroll_sync(template, None, enroll_progress, None)
|
|
assert d.get_finger_status() == FPrint.FingerStatusFlags.NONE
|
|
print("enroll done")
|
|
|
|
print("listing")
|
|
stored = d.list_prints_sync()
|
|
print("listing done")
|
|
assert len(stored) == 1
|
|
assert stored[0].equal(p)
|
|
print("verifying")
|
|
assert d.get_finger_status() == FPrint.FingerStatusFlags.NONE
|
|
verify_res, verify_print = d.verify_sync(p)
|
|
assert d.get_finger_status() == FPrint.FingerStatusFlags.NONE
|
|
print("verify done")
|
|
assert verify_res == True
|
|
|
|
print("deleting")
|
|
d.delete_print_sync(p)
|
|
print("delete done")
|
|
d.close_sync()
|
|
|
|
del d
|
|
del c
|