Skip to content

Commit

Permalink
pythongh-108962: Skip test_tempfile.test_flags() if not supported
Browse files Browse the repository at this point in the history
Skip test_tempfile.test_flags() if chflags() fails with "OSError:
[Errno 45] Operation not supported" (ex: on FreeBSD 13).
  • Loading branch information
vstinner committed Sep 5, 2023
1 parent 2c4c26c commit 44b4336
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 0 deletions.
14 changes: 14 additions & 0 deletions Lib/test/test_tempfile.py
Original file line number Diff line number Diff line change
Expand Up @@ -1837,6 +1837,20 @@ def test_modes(self):
@unittest.skipUnless(hasattr(os, 'chflags'), 'requires os.lchflags')
def test_flags(self):
flags = stat.UF_IMMUTABLE | stat.UF_NOUNLINK

# skip the test if these flags are not supported (ex: FreeBSD 13)
filename = TESTFN
try:
open(filename, "w").close()
try:
os.chflags(filename, flags)
except OSError as exc:
# "OSError: [Errno 45] Operation not supported"
self.skipTest("chflags() doesn't support "
"UF_IMMUTABLE|UF_NOUNLINK: {exc}")
finally:
support.unlink(filename)

d = self.do_create(recurse=3, dirs=2, files=2)
with d:
# Change files and directories flags recursively.
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
Skip ``test_tempfile.test_flags()`` if ``chflags()`` fails with "OSError:
[Errno 45] Operation not supported" (ex: on FreeBSD 13). Patch by Victor
Stinner.

0 comments on commit 44b4336

Please sign in to comment.