tests/fprintd: Check that identification with multiple images works

This commit is contained in:
Marco Trevisan (Treviño)
2020-04-03 06:13:33 +02:00
committed by Benjamin Berg
parent 3419901f65
commit b2cae5cccf

View File

@ -396,6 +396,25 @@ class FPrintdVirtualDeviceBaseTest(FPrintdTest):
self.device.EnrollStop()
self.assertEqual(self._last_result, expected_result)
def enroll_multiple_images(self, images_override={}, return_index=-1):
enroll_map = {
'left-thumb': 'whorl',
'right-index-finger': 'arch',
'left-little-finger': 'loop-right',
}
enroll_map.update(images_override)
for finger, print in enroll_map.items():
self.enroll_image(print, finger=finger)
enrolled = self.device.ListEnrolledFingers('(s)', 'testuser')
self.assertCountEqual(enroll_map.keys(), enrolled)
if return_index >= 0:
return enroll_map[enrolled[return_index]]
return (enrolled, enroll_map)
class FPrintdManagerTests(FPrintdVirtualDeviceBaseTest):
@ -777,6 +796,26 @@ class FPrintdVirtualDeviceClaimedTest(FPrintdVirtualDeviceBaseTest):
self.assertEqual(self._last_result, 'verify-no-match')
self.device.VerifyStop()
def test_verify_any_finger_match(self):
second_image = self.enroll_multiple_images(return_index=1)
self.device.VerifyStart('(s)', 'any')
self.send_image(second_image)
self.wait_for_result()
self.assertTrue(self._verify_stopped)
self.assertEqual(self._last_result, 'verify-match')
self.device.VerifyStop()
def test_verify_any_finger_no_match(self):
enrolled, _map = self.enroll_multiple_images()
verify_image = 'tented_arch'
self.assertNotIn(verify_image, enrolled)
self.device.VerifyStart('(s)', 'any')
self.send_image(verify_image)
self.wait_for_result()
self.assertTrue(self._verify_stopped)
self.assertEqual(self._last_result, 'verify-no-match')
self.device.VerifyStop()
def test_verify_finger_not_enrolled(self):
self.enroll_image('whorl', finger='left-thumb')
with self.assertFprintError('NoEnrolledPrints'):