summaryrefslogtreecommitdiffstats
path: root/Lib/test/support
diff options
context:
space:
mode:
authorMichał Górny <mgorny@gentoo.org>2024-10-02 14:31:42 (GMT)
committerGitHub <noreply@github.com>2024-10-02 14:31:42 (GMT)
commit8d7d257f6bcc76892a084b169cc9efa414a9e4c6 (patch)
treedd0ff5891bd7ca53764b3fb6ca0846b225de3425 /Lib/test/support
parentc2ba931318280796a6dcc33d1a5c5c02ad4d035b (diff)
downloadcpython-8d7d257f6bcc76892a084b169cc9efa414a9e4c6.zip
cpython-8d7d257f6bcc76892a084b169cc9efa414a9e4c6.tar.gz
cpython-8d7d257f6bcc76892a084b169cc9efa414a9e4c6.tar.bz2
gh-124213: Fix incorrect context manager use in in_systemd_nspawn_sync_suppressed() (#124892)
Fix the incorrect use of `os.open()` result as a context manager, while it is actually a numeric file descriptor. I have missed the problem, because in the original version the `os.open()` call would always fail, and I failed to test the final version in all possible scenarios properly.
Diffstat (limited to 'Lib/test/support')
-rw-r--r--Lib/test/support/__init__.py5
1 files changed, 3 insertions, 2 deletions
diff --git a/Lib/test/support/__init__.py b/Lib/test/support/__init__.py
index 99cb10f..1a44cc6 100644
--- a/Lib/test/support/__init__.py
+++ b/Lib/test/support/__init__.py
@@ -2907,10 +2907,11 @@ def in_systemd_nspawn_sync_suppressed() -> bool:
# trigger EINVAL. Otherwise, ENOENT will be given instead.
import errno
try:
- with os.open(__file__, os.O_RDONLY | os.O_SYNC):
- pass
+ fd = os.open(__file__, os.O_RDONLY | os.O_SYNC)
except OSError as err:
if err.errno == errno.EINVAL:
return True
+ else:
+ os.close(fd)
return False