]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
gh-139935: fix `test_os.test_getlogin` on some platforms (#139936)
authoryihong <zouzou0208@gmail.com>
Sat, 11 Oct 2025 12:32:57 +0000 (20:32 +0800)
committerGitHub <noreply@github.com>
Sat, 11 Oct 2025 12:32:57 +0000 (12:32 +0000)
This amends 4e7e2dd043c1da85b0c157d3ed24866b77e83a4f to catch errors
that `os.getlogin` can raise as specified by POSIX and Linux/glibc [1].

[1]: https://man7.org/linux/man-pages/man3/getlogin.3.html#ERRORS

---------

Signed-off-by: yihong0618 <zouzou0208@gmail.com>
Co-authored-by: Bénédikt Tran <10796600+picnixz@users.noreply.github.com>
Lib/test/test_os/test_os.py

index 371771087aaf88b1afc33a703f37226783d5891e..95b175db6fcdcbeda318fed225bfd97678d6d0d5 100644 (file)
@@ -3203,7 +3203,14 @@ class LoginTests(unittest.TestCase):
         try:
             user_name = os.getlogin()
         except OSError as exc:
-            if exc.errno in (errno.ENOTTY, errno.ENXIO):
+            # See https://man7.org/linux/man-pages/man3/getlogin.3.html#ERRORS.
+            allowed_errors = (
+                # defined by POSIX
+                errno.EMFILE, errno.ENFILE, errno.ENXIO, errno.ERANGE,
+                # defined by Linux/glibc
+                errno.ENOENT, errno.ENOMEM, errno.ENOTTY,
+            )
+            if exc.errno in allowed_errors:
                 self.skipTest(str(exc))
             else:
                 raise