From f92c4a77ada65a40700272c5af8cef302dbb4c27 Mon Sep 17 00:00:00 2001 From: Bruno Oliveira Date: Sun, 26 Jun 2022 10:06:18 -0300 Subject: [PATCH] Use PurePath directly instead of os.path.sep in rewrite.py Given we are already creating a `PurePath`, just pass the parts directly to it. This avoids using `os.path.sep`, that although is an official API, seems not to be available in all systems. Fix #9791 --- changelog/9791.bugfix.rst | 1 + src/_pytest/assertion/rewrite.py | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) create mode 100644 changelog/9791.bugfix.rst diff --git a/changelog/9791.bugfix.rst b/changelog/9791.bugfix.rst new file mode 100644 index 00000000000..f81c870165b --- /dev/null +++ b/changelog/9791.bugfix.rst @@ -0,0 +1 @@ +Fixed a path handling code in ``rewrite.py`` that seems to work fine, but was incorrect and fails in some systems. diff --git a/src/_pytest/assertion/rewrite.py b/src/_pytest/assertion/rewrite.py index 81096764e04..9d0b431b4a7 100644 --- a/src/_pytest/assertion/rewrite.py +++ b/src/_pytest/assertion/rewrite.py @@ -190,7 +190,7 @@ def _early_rewrite_bailout(self, name: str, state: "AssertionState") -> bool: return False # For matching the name it must be as if it was a filename. - path = PurePath(os.path.sep.join(parts) + ".py") + path = PurePath(*parts).with_suffix(".py") for pat in self.fnpats: # if the pattern contains subdirectories ("tests/**.py" for example) we can't bail out based