mirror of
https://gitlab.com/mishakmak/pam-fprint-grosshack.git
synced 2026-04-08 20:03:34 +02:00
verify: Fail if we try to verify a non-enrolled finger
Since we list the fingers available fail early in case it's not found
This commit is contained in:
@ -22,6 +22,20 @@ import fcntl
|
||||
import os
|
||||
import time
|
||||
|
||||
|
||||
VALID_FINGER_NAMES = [
|
||||
'left-thumb',
|
||||
'left-index-finger',
|
||||
'left-middle-finger',
|
||||
'left-ring-finger',
|
||||
'left-little-finger',
|
||||
'right-thumb',
|
||||
'right-index-finger',
|
||||
'right-middle-finger',
|
||||
'right-ring-finger',
|
||||
'right-little-finger'
|
||||
]
|
||||
|
||||
dbus.mainloop.glib.DBusGMainLoop(set_as_default=True)
|
||||
|
||||
class TestFprintdUtilsBase(dbusmock.DBusTestCase):
|
||||
@ -181,6 +195,10 @@ class TestFprintdUtilsVerify(TestFprintdUtilsBase):
|
||||
self.assertNotRegex(out, r'Device already in use by [A-z]+')
|
||||
self.assertNotIn('Verify result:', out)
|
||||
|
||||
if checkEnrolled and finger:
|
||||
self.assertNotIn('''Finger '{}' not enrolled for user {}'''.format(
|
||||
finger, user), out)
|
||||
|
||||
if checkEnrolled:
|
||||
for f in self.enrolled_fingers:
|
||||
self.assertIn(f, out)
|
||||
@ -205,6 +223,13 @@ class TestFprintdUtilsVerify(TestFprintdUtilsBase):
|
||||
time.sleep(self.sleep_time)
|
||||
self.assertVerifyMatch(True)
|
||||
|
||||
def test_fprintd_verify_not_enrolled_fingers(self):
|
||||
for finger in [f for f in VALID_FINGER_NAMES if f not in self.enrolled_fingers]:
|
||||
regex = r'Finger \'{}\' not enrolled'.format(finger)
|
||||
with self.assertRaisesRegex(AssertionError, regex):
|
||||
self.start_verify_process(finger=finger)
|
||||
self.device_mock.Release()
|
||||
|
||||
def test_fprintd_verify_script(self):
|
||||
script = [
|
||||
( 'verify-match', True, 2 )
|
||||
|
||||
@ -100,6 +100,14 @@ static void find_finger(DBusGProxy *dev, const char *username)
|
||||
g_print(" - #%d: %s\n", i, fingers[i]);
|
||||
}
|
||||
|
||||
if (finger_name && !g_str_equal (finger_name, "any") &&
|
||||
!g_strv_contains ((const char **) fingers, finger_name)) {
|
||||
g_print("Finger '%s' not enrolled for user %s.\n", finger_name,
|
||||
username);
|
||||
g_free (finger_name);
|
||||
exit(1);
|
||||
}
|
||||
|
||||
if (finger_name == NULL || strcmp (finger_name, "any") == 0) {
|
||||
g_free (finger_name);
|
||||
finger_name = g_strdup (fingers[0]);
|
||||
|
||||
Reference in New Issue
Block a user