test_diskfile.py: fix failing test if O_TMPFILE unsupported

Previously test_commit_overwritten_before_ppi_rename would fail when
O_TMPFILE is not supported (e.g macos) because an extra, unexpected,
rename call is made to rename a temporary file to a data file.

Change-Id: I30f4dcee50e30e3c501b302e2242dc1abe9b6b62
Signed-off-by: Alistair Coles <alistairncoles@gmail.com>
This commit is contained in:
Alistair Coles
2025-11-28 15:47:00 +00:00
parent 760829a75a
commit a07946329f

View File

@@ -6434,7 +6434,28 @@ class TestECDiskFile(DiskFileMixin, unittest.TestCase):
with mock.patch('swift.obj.diskfile.os.rename',
side_effect=overwriting_rename):
writer.commit(timestamp)
self.assertEqual(4, len(captured_renames))
exp_renames = \
[(df._manager.make_on_disk_filename(timestamp, '.data', 2,
durable=False),
df._manager.make_on_disk_filename(timestamp, '.data', 2,
durable=True))
] * 2
if not df._manager.use_linkat:
# we capture an extra tmp file rename on some platforms
exp_renames += \
[(mock.ANY,
df._manager.make_on_disk_filename(ts2, '.data', 2,
durable=False))]
exp_renames += \
[(df._manager.make_on_disk_filename(ts2, '.data', 2,
durable=False),
df._manager.make_on_disk_filename(ts2, '.data', 2,
durable=True))
] * 2
self.assertEqual(
exp_renames,
[(os.path.basename(args[0]), os.path.basename(args[1]))
for args in captured_renames])
dl = os.listdir(df._datadir)
datafile = _make_datafilename(
ts2, POLICIES.default, frag_index=2, durable=True)