virtual-device: Mark finger as needed only after we start scanning

In case we sent a sleep event to the device we may want to wait it to
emit the finger needed state before the timeout is completed.

So add a function to manage this for all the scan cases
This commit is contained in:
Marco Trevisan (Treviño)
2021-01-25 22:47:40 +01:00
parent 3db0858fb0
commit 0bb0492025
4 changed files with 70 additions and 15 deletions

View File

@@ -344,6 +344,9 @@ class VirtualDevice(unittest.TestCase):
self.start_verify(FPrint.Print.new(self.dev),
identify=self.dev.supports_identify())
self.assertEqual(self.dev.get_finger_status(),
FPrint.FingerStatusFlags.NEEDED)
self.send_finger_report(True)
self.assertEqual(self.dev.get_finger_status(),
FPrint.FingerStatusFlags.NEEDED | FPrint.FingerStatusFlags.PRESENT)
@@ -353,6 +356,30 @@ class VirtualDevice(unittest.TestCase):
self.cancel_verify()
def test_finger_status_after_sleep(self):
self.send_command('SLEEP', 10)
self.start_verify(FPrint.Print.new(self.dev),
identify=self.dev.supports_identify())
self.assertEqual(self.dev.get_finger_status(),
FPrint.FingerStatusFlags.NONE)
while self.dev.get_finger_status() != FPrint.FingerStatusFlags.NEEDED:
ctx.iteration(True)
self.assertEqual(self.dev.get_finger_status(),
FPrint.FingerStatusFlags.NEEDED)
self.send_finger_report(True)
self.assertEqual(self.dev.get_finger_status(),
FPrint.FingerStatusFlags.NEEDED | FPrint.FingerStatusFlags.PRESENT)
self.send_finger_report(False)
self.assertEqual(self.dev.get_finger_status(),
FPrint.FingerStatusFlags.NEEDED)
self.cancel_verify()
def test_change_enroll_stages(self):
notified_spec = None
def on_stage_changed(dev, spec):