From 33a21b5089a80c478baa9ac7b215937611e29c33 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marco=20Trevisan=20=28Trevi=C3=B1o=29?= Date: Thu, 30 Jan 2020 18:58:28 +0100 Subject: [PATCH] tests/fprintd: Test error conditions on Claim()/Release() --- tests/fprintd.py | 85 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 85 insertions(+) diff --git a/tests/fprintd.py b/tests/fprintd.py index 1545a68..60d85de 100755 --- a/tests/fprintd.py +++ b/tests/fprintd.py @@ -340,6 +340,91 @@ class FPrintdVirtualDeviceTest(FPrintdTest): return self.assertRaisesRegex(GLib.Error, '.*net\.reactivated\.Fprint\.Error\.{}.*'.format(fprint_error)) + def test_allowed_claim(self): + self._polkitd_obj.SetAllowed(['net.reactivated.fprint.device.setusername', + 'net.reactivated.fprint.device.enroll']) + self.device.Claim('(s)', 'testuser') + self.device.Release() + + def test_unallowed_claim(self): + self._polkitd_obj.SetAllowed(['']) + + with self.assertFprintError('PermissionDenied'): + self.device.Claim('(s)', 'testuser') + + self._polkitd_obj.SetAllowed(['net.reactivated.fprint.device.setusername']) + + with self.assertFprintError('PermissionDenied'): + self.device.Claim('(s)', 'testuser') + + self._polkitd_obj.SetAllowed(['net.reactivated.fprint.device.enroll']) + + with self.assertFprintError('PermissionDenied'): + self.device.Claim('(s)', 'testuser') + + def test_multiple_claims(self): + self.device.Claim('(s)', 'testuser') + + with self.assertFprintError('AlreadyInUse'): + self.device.Claim('(s)', 'testuser') + + self.device.Release() + + def test_unallowed_release(self): + self.device.Claim('(s)', 'testuser') + + self._polkitd_obj.SetAllowed(['']) + + with self.assertFprintError('PermissionDenied'): + self.device.Release() + + self._polkitd_obj.SetAllowed(['net.reactivated.fprint.device.setusername']) + + with self.assertFprintError('PermissionDenied'): + self.device.Release() + + self._polkitd_obj.SetAllowed(['net.reactivated.fprint.device.enroll']) + self.device.Release() + + def test_unclaimed_release(self): + with self.assertFprintError('ClaimDevice'): + self.device.Release() + + def test_unclaimed_verify_start(self): + with self.assertFprintError('ClaimDevice'): + self.device.VerifyStart('(s)', 'any') + + def test_unclaimed_verify_stop(self): + with self.assertFprintError('ClaimDevice'): + self.device.VerifyStop() + + def test_unclaimed_enroll_start(self): + with self.assertFprintError('ClaimDevice'): + self.device.EnrollStart('(s)', 'left-index-finger') + + def test_unclaimed_enroll_stop(self): + with self.assertFprintError('ClaimDevice'): + self.device.EnrollStop() + + def test_wrong_finger_enroll_start(self): + self.device.Claim('(s)', 'testuser') + + with self.assertFprintError('InvalidFingername'): + self.device.EnrollStart('(s)', 'any') + + self.device.Release() + + def test_unclaimed_delete_enrolled_fingers(self): + self.device.DeleteEnrolledFingers('(s)', 'testuser') + + def test_unclaimed_delete_enrolled_fingers2(self): + with self.assertFprintError('ClaimDevice'): + self.device.DeleteEnrolledFingers2() + + def test_unclaimed_list_enrolled_fingers(self): + with self.assertFprintError('NoEnrolledPrints'): + self.device.ListEnrolledFingers('(s)', 'testuser') + def test_enroll_verify_list_delete(self): self.device.Claim('(s)', 'testuser')