From 99799404a3e69409dc78c3b6e6e5c29a5e8c784d Mon Sep 17 00:00:00 2001 From: pem70 Date: Thu, 11 Dec 2025 18:41:27 -0600 Subject: [PATCH] Update test_mount_unmount_zfs_file_system() Signed-off-by: pem70 --- tests/integration/test_zos_files.py | 52 ++++++++++++++++++----------- 1 file changed, 32 insertions(+), 20 deletions(-) diff --git a/tests/integration/test_zos_files.py b/tests/integration/test_zos_files.py index e2845335..6626c966 100644 --- a/tests/integration/test_zos_files.py +++ b/tests/integration/test_zos_files.py @@ -109,30 +109,42 @@ def test_copy_data_set_or_member_should_be_possible(self): self.assertTrue(command_output == None) def test_mount_unmount_zfs_file_system(self): - """Mounting a zfs filesystem should be possible""" - username = self.user_name.lower() + """Test mounting and unmounting, with safety nets.""" mount_point = self.files_fixtures["TEST_USS_MOUNT"] + + # Create and register safety cleanup + self.files.fs.create(self.test2_zfs_file_system, self.create_zfs_options) + self.addCleanup(self._safe_delete_fs, self.test2_zfs_file_system) - # Create a zfs file system - zfs_file_system = self.files.fs.create(self.test2_zfs_file_system, self.create_zfs_options) + # Mount and register safety cleanup + self.files.fs.mount(self.test2_zfs_file_system, mount_point, self.mount_zfs_file_system_options) + self.addCleanup(self._safe_unmount_fs, self.test2_zfs_file_system) - # Mount file system - command_output = self.files.fs.mount( - self.test2_zfs_file_system, mount_point, self.mount_zfs_file_system_options - ) - self.assertTrue(command_output == None) - - # List a zfs file system + # Verify mount success command_output = self.files.fs.list(file_system_name=self.test2_zfs_file_system.upper()) - self.assertTrue(len(command_output["items"]) > 0) - - # Unmount file system - command_output = self.files.fs.unmount(self.test2_zfs_file_system) - self.assertTrue(command_output == None) - - # Delete file system - command_output = self.files.fs.delete(self.test2_zfs_file_system) - self.assertTrue(command_output == None) + self.assertGreater(len(command_output["items"]), 0) + + # Verify unmount success + unmount_response = self.files.fs.unmount(self.test2_zfs_file_system) + self.assertIsNone(unmount_response) + + # Verify delete success + delete_response = self.files.fs.delete(self.test2_zfs_file_system) + self.assertIsNone(delete_response) + + def _safe_unmount_fs(self, fs_name): + """Idempotent helper: Unmounts but ignores errors if already unmounted.""" + try: + self.files.fs.unmount(fs_name) + except Exception: + pass + + def _safe_delete_fs(self, fs_name): + """Idempotent helper: Deletes but ignores errors if already deleted.""" + try: + self.files.fs.delete(fs_name) + except Exception: + pass def test_upload_download_delete_dataset(self): self.files.ds.upload_file(SAMPLE_JCL_FIXTURE_PATH, self.test_ds_upload)