Skip to content

Commit 85387db

Browse files
authored
Fix upath suffixes (#407)
* tests: add a test for suffixes behavior * upath._flavour: fix splitext behavior * test: fix DataPath suffix tests
1 parent bab1893 commit 85387db

File tree

3 files changed

+23
-1
lines changed

3 files changed

+23
-1
lines changed

upath/_flavour.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -362,7 +362,7 @@ def splitext(self, path: PathOrStr) -> tuple[str, str]:
362362
return os.path.splitext(path)
363363
else:
364364
path, sep, name = path.rpartition(self.sep)
365-
if name:
365+
if "." in name:
366366
stem, dot, ext = name.rpartition(".")
367367
suffix = dot + ext
368368
else:

upath/tests/cases.py

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -447,6 +447,22 @@ def test_with_suffix(self):
447447
path = path.with_suffix(".zip")
448448
assert path.suffix == ".zip"
449449

450+
def test_suffix(self):
451+
path = self.path / "no_suffix"
452+
assert path.suffix == ""
453+
path = self.path / "file.txt"
454+
assert path.suffix == ".txt"
455+
path = self.path / "archive.tar.gz"
456+
assert path.suffix == ".gz"
457+
458+
def test_suffixes(self):
459+
path = self.path / "no_suffix"
460+
assert path.suffixes == []
461+
path = self.path / "file.txt"
462+
assert path.suffixes == [".txt"]
463+
path = self.path / "archive.tar.gz"
464+
assert path.suffixes == [".tar", ".gz"]
465+
450466
def test_with_stem(self):
451467
if sys.version_info < (3, 9):
452468
pytest.skip("with_stem only available on py3.9+")

upath/tests/implementations/test_data.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -174,6 +174,12 @@ def test_with_suffix(self):
174174
with pytest.raises(NotImplementedError):
175175
self.path.with_suffix(".new")
176176

177+
def test_suffix(self):
178+
assert self.path.suffix == ""
179+
180+
def test_suffixes(self):
181+
assert self.path.suffixes == []
182+
177183
def test_with_stem(self):
178184
with pytest.raises(NotImplementedError):
179185
self.path.with_stem("newname")

0 commit comments

Comments
 (0)