From b2cae5cccf96bf04f529527d6758f457c99fc808 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marco=20Trevisan=20=28Trevi=C3=B1o=29?= Date: Fri, 3 Apr 2020 06:13:33 +0200 Subject: [PATCH] tests/fprintd: Check that identification with multiple images works --- tests/fprintd.py | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/tests/fprintd.py b/tests/fprintd.py index 7351980..d2f33e0 100755 --- a/tests/fprintd.py +++ b/tests/fprintd.py @@ -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'):