From f12f4f8d1314d56fc84f389e8b588dc04b4063ce Mon Sep 17 00:00:00 2001 From: Andreas Poehlmann Date: Sat, 27 Sep 2025 12:21:04 +0200 Subject: [PATCH 1/3] tests: add a test for suffixes behavior --- upath/tests/cases.py | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/upath/tests/cases.py b/upath/tests/cases.py index 4ea493ac..29bb21b2 100644 --- a/upath/tests/cases.py +++ b/upath/tests/cases.py @@ -447,6 +447,22 @@ def test_with_suffix(self): path = path.with_suffix(".zip") assert path.suffix == ".zip" + def test_suffix(self): + path = self.path / "no_suffix" + assert path.suffix == "" + path = self.path / "file.txt" + assert path.suffix == ".txt" + path = self.path / "archive.tar.gz" + assert path.suffix == ".gz" + + def test_suffixes(self): + path = self.path / "no_suffix" + assert path.suffixes == [] + path = self.path / "file.txt" + assert path.suffixes == [".txt"] + path = self.path / "archive.tar.gz" + assert path.suffixes == [".tar", ".gz"] + def test_with_stem(self): if sys.version_info < (3, 9): pytest.skip("with_stem only available on py3.9+") From a61f62ab4cbf2179674ff0e58e41add247d8356c Mon Sep 17 00:00:00 2001 From: Andreas Poehlmann Date: Sat, 27 Sep 2025 12:24:52 +0200 Subject: [PATCH 2/3] upath._flavour: fix splitext behavior --- upath/_flavour.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/upath/_flavour.py b/upath/_flavour.py index 25d35c3a..e6b41054 100644 --- a/upath/_flavour.py +++ b/upath/_flavour.py @@ -362,7 +362,7 @@ def splitext(self, path: PathOrStr) -> tuple[str, str]: return os.path.splitext(path) else: path, sep, name = path.rpartition(self.sep) - if name: + if "." in name: stem, dot, ext = name.rpartition(".") suffix = dot + ext else: From ca2760d7388d869c6d0aeb7354c7a9be9b3ce6ad Mon Sep 17 00:00:00 2001 From: Andreas Poehlmann Date: Sat, 27 Sep 2025 12:31:39 +0200 Subject: [PATCH 3/3] test: fix DataPath suffix tests --- upath/tests/implementations/test_data.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/upath/tests/implementations/test_data.py b/upath/tests/implementations/test_data.py index 9ada0687..2de99686 100644 --- a/upath/tests/implementations/test_data.py +++ b/upath/tests/implementations/test_data.py @@ -174,6 +174,12 @@ def test_with_suffix(self): with pytest.raises(NotImplementedError): self.path.with_suffix(".new") + def test_suffix(self): + assert self.path.suffix == "" + + def test_suffixes(self): + assert self.path.suffixes == [] + def test_with_stem(self): with pytest.raises(NotImplementedError): self.path.with_stem("newname")