From 14d3707818e0beaab2a3ce4f4fa95ee5a147b75e Mon Sep 17 00:00:00 2001 From: Russell Martin Date: Sun, 28 Jan 2024 21:07:18 -0500 Subject: [PATCH] Catch `OSError` from `getpass.getuser()` (#11875) - Previously, `getpass.getuser()` would leak an ImportError if the USERNAME environment variable was not set on Windows because the `pwd` module cannot be imported. - Starting in Python 3.13.0a3, it only raises `OSError`. Fixes #11874 --- AUTHORS | 1 + changelog/11875.bugfix.rst | 1 + src/_pytest/tmpdir.py | 2 +- 3 files changed, 3 insertions(+), 1 deletion(-) create mode 100644 changelog/11875.bugfix.rst diff --git a/AUTHORS b/AUTHORS index 803bb2b18..bea582046 100644 --- a/AUTHORS +++ b/AUTHORS @@ -340,6 +340,7 @@ Ronny Pfannschmidt Ross Lawley Ruaridh Williamson Russel Winder +Russell Martin Ryan Puddephatt Ryan Wooden Sadra Barikbin diff --git a/changelog/11875.bugfix.rst b/changelog/11875.bugfix.rst new file mode 100644 index 000000000..d646be631 --- /dev/null +++ b/changelog/11875.bugfix.rst @@ -0,0 +1 @@ +Correctly handle errors from :func:`getpass.getuser` in Python 3.13. diff --git a/src/_pytest/tmpdir.py b/src/_pytest/tmpdir.py index 937b1687a..75391adbc 100644 --- a/src/_pytest/tmpdir.py +++ b/src/_pytest/tmpdir.py @@ -204,7 +204,7 @@ def get_user() -> Optional[str]: import getpass return getpass.getuser() - except (ImportError, KeyError): + except (ImportError, OSError, KeyError): return None