mirror of
https://gitlab.com/mishakmak/pam-fprint-grosshack.git
synced 2026-04-08 20:03:34 +02:00
device: Throw a NoEnrolledPrints error if trying to delete a device with no prints
Adjust tests accordingly
This commit is contained in:
@ -184,6 +184,11 @@ def DeleteEnrolledFingers2(device):
|
||||
raise dbus.exceptions.DBusException(
|
||||
'Device was not claimed before use',
|
||||
name='net.reactivated.Fprint.Error.ClaimDevice')
|
||||
if not device.fingers[device.claimed_user]:
|
||||
raise dbus.exceptions.DBusException(
|
||||
'No enrolled prints in device {} for user {}'.format(device.path,
|
||||
device.claimed_user),
|
||||
name='net.reactivated.Fprint.Error.NoEnrolledPrints')
|
||||
device.fingers[device.claimed_user] = []
|
||||
|
||||
@dbus.service.method(DEVICE_IFACE,
|
||||
|
||||
@ -1246,7 +1246,12 @@ class FPrintdVirtualDeviceTest(FPrintdVirtualDeviceBaseTest):
|
||||
self.device.EnrollStop()
|
||||
|
||||
def test_unclaimed_delete_enrolled_fingers(self):
|
||||
self.device.DeleteEnrolledFingers('(s)', 'testuser')
|
||||
self.enroll_image('whorl', claim_user='foo-user')
|
||||
self.device.DeleteEnrolledFingers('(s)', 'foo-user')
|
||||
|
||||
def test_unclaimed_delete_enrolled_fingers_no_prints(self):
|
||||
with self.assertFprintError('NoEnrolledPrints'):
|
||||
self.device.DeleteEnrolledFingers('(s)', 'testuser')
|
||||
|
||||
def test_unclaimed_delete_enrolled_finger(self):
|
||||
with self.assertFprintError('ClaimDevice'):
|
||||
@ -2044,11 +2049,7 @@ class FPrintdVirtualDeviceClaimedTest(FPrintdVirtualDeviceBaseTest):
|
||||
self.wait_for_device_reply_relaxed(expected_replies=2,
|
||||
accepted_exceptions=accepted_exceptions)
|
||||
|
||||
if self.device_driver == 'virtual_device_storage':
|
||||
self.assertIn(GLib.Variant('()', ()), self.get_all_async_replies())
|
||||
else:
|
||||
self.assertEqual([GLib.Variant('()', ()), GLib.Variant('()', ())],
|
||||
self.get_all_async_replies())
|
||||
self.assertIn(GLib.Variant('()', ()), self.get_all_async_replies())
|
||||
|
||||
def test_concourrent_delete_enrolled_fingers_unclaimed(self):
|
||||
self.enroll_image('whorl')
|
||||
@ -2063,11 +2064,7 @@ class FPrintdVirtualDeviceClaimedTest(FPrintdVirtualDeviceBaseTest):
|
||||
self.wait_for_device_reply_relaxed(expected_replies=2,
|
||||
accepted_exceptions=accepted_exceptions)
|
||||
|
||||
if self.device_driver == 'virtual_device_storage':
|
||||
self.assertIn(GLib.Variant('()', ()), self.get_all_async_replies())
|
||||
else:
|
||||
self.assertEqual([GLib.Variant('()', ()), GLib.Variant('()', ())],
|
||||
self.get_all_async_replies())
|
||||
self.assertIn(GLib.Variant('()', ()), self.get_all_async_replies())
|
||||
|
||||
def test_concourrent_delete_enrolled_fingers2(self):
|
||||
self.enroll_image('whorl')
|
||||
@ -2081,11 +2078,7 @@ class FPrintdVirtualDeviceClaimedTest(FPrintdVirtualDeviceBaseTest):
|
||||
self.wait_for_device_reply_relaxed(expected_replies=2,
|
||||
accepted_exceptions=accepted_exceptions)
|
||||
|
||||
if self.device_driver == 'virtual_device_storage':
|
||||
self.assertIn(GLib.Variant('()', ()), self.get_all_async_replies())
|
||||
else:
|
||||
self.assertEqual([GLib.Variant('()', ()), GLib.Variant('()', ())],
|
||||
self.get_all_async_replies())
|
||||
self.assertIn(GLib.Variant('()', ()), self.get_all_async_replies())
|
||||
|
||||
def test_concourrent_delete_enrolled_finger(self):
|
||||
self.enroll_image('whorl', finger='left-thumb')
|
||||
@ -2115,6 +2108,24 @@ class FPrintdVirtualDeviceClaimedTest(FPrintdVirtualDeviceBaseTest):
|
||||
|
||||
self.assertIn(GLib.Variant('()', ()), self.get_all_async_replies())
|
||||
|
||||
def test_already_claimed_same_user_delete_enrolled_fingers(self):
|
||||
self.enroll_image('whorl')
|
||||
self.device.DeleteEnrolledFingers('(s)', 'testuser')
|
||||
|
||||
def test_already_claimed_same_user_delete_enrolled_fingers_no_prints(self):
|
||||
with self.assertFprintError('NoEnrolledPrints'):
|
||||
self.device.DeleteEnrolledFingers('(s)', 'testuser')
|
||||
|
||||
def test_already_claimed_other_user_delete_enrolled_fingers(self):
|
||||
self.device.Release()
|
||||
self.enroll_image('whorl', claim_user='nottestuser')
|
||||
self.device.Claim('(s)', 'testuser')
|
||||
self.device.DeleteEnrolledFingers('(s)', 'nottestuser')
|
||||
|
||||
def test_already_claimed_other_user_delete_enrolled_fingers_no_prints(self):
|
||||
with self.assertFprintError('NoEnrolledPrints'):
|
||||
self.device.DeleteEnrolledFingers('(s)', 'nottestuser')
|
||||
|
||||
|
||||
class FPrintdVirtualDeviceEnrollTests(FPrintdVirtualDeviceBaseTest):
|
||||
|
||||
@ -2843,13 +2854,6 @@ class FPrintdUtilsTest(FPrintdVirtualDeviceBaseTest):
|
||||
self.device.Claim('(s)', self.get_current_user())
|
||||
self.device.Release()
|
||||
|
||||
def test_already_claimed_same_user_delete_enrolled_fingers(self):
|
||||
self.device.DeleteEnrolledFingers('(s)', 'testuser')
|
||||
|
||||
def test_already_claimed_other_user_delete_enrolled_fingers(self):
|
||||
self.device.DeleteEnrolledFingers('(s)', 'nottestuser')
|
||||
|
||||
|
||||
|
||||
def list_tests():
|
||||
import unittest_inspector
|
||||
|
||||
@ -158,20 +158,14 @@ class TestFprintdUtils(TestFprintdUtilsBase):
|
||||
self.assertEqual(ret, 0)
|
||||
|
||||
def test_fprintd_delete(self):
|
||||
# Has fingerprints enrolled
|
||||
out, ret = self.run_utility_process('list', ['toto'])
|
||||
self.assertRegex(out, rb'left-little-finger')
|
||||
self.assertEqual(ret, 0)
|
||||
self.assertRegex(out, rb'right-little-finger')
|
||||
|
||||
# Delete fingerprints
|
||||
out, ret = self.run_utility_process('delete', ['toto'])
|
||||
self.assertRegex(out, rb'Fingerprints deleted')
|
||||
self.assertEqual(ret, 0)
|
||||
|
||||
# Doesn't have fingerprints
|
||||
out, ret = self.run_utility_process('list', ['toto'])
|
||||
self.assertRegex(out, rb'has no fingers enrolled for')
|
||||
out, ret = self.run_utility_process('delete', ['toto'])
|
||||
self.assertRegex(out, rb'No fingerprints to delete on')
|
||||
self.assertEqual(ret, 0)
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user