From 0f29cfc0c7c6ff23cd44e51ab5df0db299e678bd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marco=20Trevisan=20=28Trevi=C3=B1o=29?= Date: Thu, 17 Dec 2020 01:38:38 +0100 Subject: [PATCH] tests/fprintd: Check the storage errors are emitted if we fail delete prints --- tests/fprintd.py | 63 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) diff --git a/tests/fprintd.py b/tests/fprintd.py index 604bc49..530ac0f 100755 --- a/tests/fprintd.py +++ b/tests/fprintd.py @@ -1222,6 +1222,25 @@ class FPrintdVirtualDeviceClaimedTest(FPrintdVirtualDeviceBaseTest): with self.assertFprintError('NoEnrolledPrints'): self.device.ListEnrolledFingers('(s)', 'testuser') + def test_enroll_delete_storage_error(self): + self.enroll_image('whorl') + self.enroll_image('tented_arch', finger='left-index-finger') + + print_file = self.get_print_file_path('testuser', FPrint.Finger.RIGHT_INDEX) + device_dir = os.path.dirname(print_file) + os.chmod(device_dir, mode=0o500) + self.addCleanup(os.chmod, device_dir, mode=0o750) + self.skipTestIfCanWrite(device_dir) + + self.assertFingerInStorage('testuser', FPrint.Finger.RIGHT_INDEX) + self.assertFingerInStorage('testuser', FPrint.Finger.LEFT_INDEX) + + with self.assertFprintError('PrintsNotDeleted'): + self.device.DeleteEnrolledFingers('(s)', 'testuser') + + self.assertFingerInStorage('testuser', FPrint.Finger.RIGHT_INDEX) + self.assertFingerInStorage('testuser', FPrint.Finger.LEFT_INDEX) + def test_enroll_delete2(self): self.enroll_image('whorl') @@ -1246,6 +1265,25 @@ class FPrintdVirtualDeviceClaimedTest(FPrintdVirtualDeviceBaseTest): self.assertFingerNotInStorage('testuser', FPrint.Finger.RIGHT_INDEX) self.assertFingerNotInStorage('testuser', FPrint.Finger.LEFT_INDEX) + def test_enroll_delete2_storage_error(self): + self.enroll_image('whorl') + self.enroll_image('tented_arch', finger='left-index-finger') + + print_file = self.get_print_file_path('testuser', FPrint.Finger.RIGHT_INDEX) + device_dir = os.path.dirname(print_file) + os.chmod(device_dir, mode=0o500) + self.addCleanup(os.chmod, device_dir, mode=0o750) + self.skipTestIfCanWrite(device_dir) + + self.assertFingerInStorage('testuser', FPrint.Finger.RIGHT_INDEX) + self.assertFingerInStorage('testuser', FPrint.Finger.LEFT_INDEX) + + with self.assertFprintError('PrintsNotDeleted'): + self.device.DeleteEnrolledFingers2() + + self.assertFingerInStorage('testuser', FPrint.Finger.RIGHT_INDEX) + self.assertFingerInStorage('testuser', FPrint.Finger.LEFT_INDEX) + def test_enroll_delete_single(self): self.enroll_image('whorl', finger='right-index-finger') self.enroll_image('tented_arch', finger='left-index-finger') @@ -1261,6 +1299,31 @@ class FPrintdVirtualDeviceClaimedTest(FPrintdVirtualDeviceBaseTest): self.assertFingerNotInStorage('testuser', FPrint.Finger.LEFT_INDEX) self.assertFingerNotInStorage('testuser', FPrint.Finger.RIGHT_INDEX) + def test_enroll_delete_single_storage_error(self): + self.enroll_image('whorl', finger='right-index-finger') + self.enroll_image('tented_arch', finger='left-index-finger') + + print_file = self.get_print_file_path('testuser', FPrint.Finger.RIGHT_INDEX) + device_dir = os.path.dirname(print_file) + os.chmod(device_dir, mode=0o500) + self.addCleanup(os.chmod, device_dir, mode=0o750) + self.skipTestIfCanWrite(device_dir) + + self.assertFingerInStorage('testuser', FPrint.Finger.RIGHT_INDEX) + self.assertFingerInStorage('testuser', FPrint.Finger.LEFT_INDEX) + + with self.assertFprintError('PrintsNotDeleted'): + self.device.DeleteEnrolledFinger('(s)', 'right-index-finger') + + self.assertFingerInStorage('testuser', FPrint.Finger.LEFT_INDEX) + self.assertFingerInStorage('testuser', FPrint.Finger.RIGHT_INDEX) + + with self.assertFprintError('PrintsNotDeleted'): + self.device.DeleteEnrolledFinger('(s)', 'left-index-finger') + + self.assertFingerInStorage('testuser', FPrint.Finger.LEFT_INDEX) + self.assertFingerInStorage('testuser', FPrint.Finger.RIGHT_INDEX) + def test_enroll_invalid_storage_dir(self): # Directory will not exist yet os.makedirs(self.state_dir, mode=0o500)