From 70317635e290fe69740fe892c60fe017d4bf1b0f Mon Sep 17 00:00:00 2001 From: EternalRights <162705204+EternalRights@users.noreply.github.com> Date: Sun, 24 May 2026 00:24:27 +0800 Subject: [PATCH 1/6] Add regression test for get_user() OSError handling (#13835) --- testing/test_tmpdir.py | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/testing/test_tmpdir.py b/testing/test_tmpdir.py index e6909217d88..c7d639849e1 100644 --- a/testing/test_tmpdir.py +++ b/testing/test_tmpdir.py @@ -715,3 +715,14 @@ def test_tmp_path_factory_doesnt_follow_symlinks( tmp_factory = TempPathFactory(None, 3, "all", lambda *args: None, _ispytest=True) with pytest.raises(OSError, match=r"temporary directory .* is a symbolic link"): tmp_factory.getbasetemp() + +def test_get_user_handles_getpass_oserror(monkeypatch: MonkeyPatch) -> None: + """Regression test: get_user() should return None when getpass.getuser() + raises OSError (Python 3.13+ behavior, #13835).""" + import getpass + + def _raise_oserror(): + raise OSError("No username set in the environment") + + monkeypatch.setattr(getpass, "getuser", _raise_oserror) + assert get_user() is None From 35a175b302bc9f0a1ca37d26b1baec265396d61c Mon Sep 17 00:00:00 2001 From: EternalRights <162705204+EternalRights@users.noreply.github.com> Date: Sun, 24 May 2026 00:25:31 +0800 Subject: [PATCH 2/6] Add changelog for #13835 --- changelog/13835.bugfix.rst | 1 + 1 file changed, 1 insertion(+) create mode 100644 changelog/13835.bugfix.rst diff --git a/changelog/13835.bugfix.rst b/changelog/13835.bugfix.rst new file mode 100644 index 00000000000..f36fb61047b --- /dev/null +++ b/changelog/13835.bugfix.rst @@ -0,0 +1 @@ +Added regression test ensuring :func:`get_user` returns ``None`` when :func:`getpass.getuser` raises :exc:`OSError` on Python 3.13+ -- #13835. From 563bcaada17be98cd76880224951c4dcbb87953f Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Sat, 23 May 2026 16:29:23 +0000 Subject: [PATCH 3/6] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- testing/test_tmpdir.py | 1 + 1 file changed, 1 insertion(+) diff --git a/testing/test_tmpdir.py b/testing/test_tmpdir.py index c7d639849e1..610de9c5fd6 100644 --- a/testing/test_tmpdir.py +++ b/testing/test_tmpdir.py @@ -716,6 +716,7 @@ def test_tmp_path_factory_doesnt_follow_symlinks( with pytest.raises(OSError, match=r"temporary directory .* is a symbolic link"): tmp_factory.getbasetemp() + def test_get_user_handles_getpass_oserror(monkeypatch: MonkeyPatch) -> None: """Regression test: get_user() should return None when getpass.getuser() raises OSError (Python 3.13+ behavior, #13835).""" From c510cb436d87be6c58f33b26eb3c2a5f21b6fe91 Mon Sep 17 00:00:00 2001 From: EternalRights <162705204+EternalRights@users.noreply.github.com> Date: Sun, 24 May 2026 09:04:24 +0800 Subject: [PATCH 4/6] Trigger CI re-run From f5b814f3e114565d5380264bb6153906ced9f27b Mon Sep 17 00:00:00 2001 From: EternalRights <162705204+EternalRights@users.noreply.github.com> Date: Sun, 24 May 2026 09:25:55 +0800 Subject: [PATCH 5/6] Fix changelog RST cross-reference --- changelog/13835.bugfix.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/changelog/13835.bugfix.rst b/changelog/13835.bugfix.rst index f36fb61047b..1e9e9470b52 100644 --- a/changelog/13835.bugfix.rst +++ b/changelog/13835.bugfix.rst @@ -1 +1 @@ -Added regression test ensuring :func:`get_user` returns ``None`` when :func:`getpass.getuser` raises :exc:`OSError` on Python 3.13+ -- #13835. +Added regression test ensuring ``get_user`` returns ``None`` when ``getpass.getuser`` raises ``OSError`` on Python 3.13+ -- #13835. From 7c303c57a43fd419b9555ab9a2a3c78755d38b5c Mon Sep 17 00:00:00 2001 From: Ran Benita Date: Sun, 24 May 2026 16:22:54 +0300 Subject: [PATCH 6/6] Delete changelog/13835.bugfix.rst --- changelog/13835.bugfix.rst | 1 - 1 file changed, 1 deletion(-) delete mode 100644 changelog/13835.bugfix.rst diff --git a/changelog/13835.bugfix.rst b/changelog/13835.bugfix.rst deleted file mode 100644 index 1e9e9470b52..00000000000 --- a/changelog/13835.bugfix.rst +++ /dev/null @@ -1 +0,0 @@ -Added regression test ensuring ``get_user`` returns ``None`` when ``getpass.getuser`` raises ``OSError`` on Python 3.13+ -- #13835.