Skip to content

Commit 1bd1b1e

Browse files
authored
Merge pull request #384 from pem70/Fix-test_mount_unmount_zfs_file_system
Fix flaky `test_mount_unmount_zfs_file_system()`
2 parents 14a6814 + c3e398a commit 1bd1b1e

1 file changed

Lines changed: 30 additions & 18 deletions

File tree

tests/integration/test_zos_files.py

Lines changed: 30 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -110,30 +110,42 @@ def test_copy_data_set_or_member_should_be_possible(self):
110110
self.assertTrue(command_output == None)
111111

112112
def test_mount_unmount_zfs_file_system(self):
113-
"""Mounting a zfs filesystem should be possible"""
114-
username = self.user_name.lower()
113+
"""Test mounting and unmounting, with safety nets."""
115114
mount_point = self.files_fixtures["TEST_USS_MOUNT"]
115+
116+
# Create and register safety cleanup
117+
self.files.fs.create(self.test2_zfs_file_system, self.create_zfs_options)
118+
self.addCleanup(self._safe_delete_fs, self.test2_zfs_file_system)
116119

117-
# Create a zfs file system
118-
zfs_file_system = self.files.fs.create(self.test2_zfs_file_system, self.create_zfs_options)
120+
# Mount and register safety cleanup
121+
self.files.fs.mount(self.test2_zfs_file_system, mount_point, self.mount_zfs_file_system_options)
122+
self.addCleanup(self._safe_unmount_fs, self.test2_zfs_file_system)
119123

120-
# Mount file system
121-
command_output = self.files.fs.mount(
122-
self.test2_zfs_file_system, mount_point, self.mount_zfs_file_system_options
123-
)
124-
self.assertTrue(command_output == None)
125-
126-
# List a zfs file system
124+
# Verify mount success
127125
command_output = self.files.fs.list(file_system_name=self.test2_zfs_file_system.upper())
128-
self.assertTrue(len(command_output["items"]) > 0)
126+
self.assertGreater(len(command_output["items"]), 0)
129127

130-
# Unmount file system
131-
command_output = self.files.fs.unmount(self.test2_zfs_file_system)
132-
self.assertTrue(command_output == None)
128+
# Verify unmount success
129+
unmount_response = self.files.fs.unmount(self.test2_zfs_file_system)
130+
self.assertIsNone(unmount_response)
133131

134-
# Delete file system
135-
command_output = self.files.fs.delete(self.test2_zfs_file_system)
136-
self.assertTrue(command_output == None)
132+
# Verify delete success
133+
delete_response = self.files.fs.delete(self.test2_zfs_file_system)
134+
self.assertIsNone(delete_response)
135+
136+
def _safe_unmount_fs(self, fs_name):
137+
"""Idempotent helper: Unmounts but ignores errors if already unmounted."""
138+
try:
139+
self.files.fs.unmount(fs_name)
140+
except Exception:
141+
pass
142+
143+
def _safe_delete_fs(self, fs_name):
144+
"""Idempotent helper: Deletes but ignores errors if already deleted."""
145+
try:
146+
self.files.fs.delete(fs_name)
147+
except Exception:
148+
pass
137149

138150
def test_upload_download_delete_dataset(self):
139151
try: # small cleanup in case if the test was failed previously

0 commit comments

Comments
 (0)