has no suffix, add given suffix. If the given suffix is an empty
string, remove the suffix from the path.
"""
+ stem = self.stem
if not suffix:
- return self.with_name(self.stem)
+ return self.with_name(stem)
+ elif not stem:
+ raise ValueError(f"{self!r} has an empty name")
elif suffix.startswith('.') and len(suffix) > 1:
- return self.with_name(self.stem + suffix)
+ return self.with_name(stem + suffix)
else:
raise ValueError(f"Invalid suffix {suffix!r}")
self.assertRaises(ValueError, P('a/b').with_stem, '')
self.assertRaises(ValueError, P('a/b').with_stem, '.')
- def test_with_suffix_empty(self):
- # Path doesn't have a "filename" component.
- P = self.cls
- self.assertRaises(ValueError, P('').with_suffix, '.gz')
- self.assertRaises(ValueError, P('.').with_suffix, '.gz')
- self.assertRaises(ValueError, P('/').with_suffix, '.gz')
-
def test_relative_to_several_args(self):
P = self.cls
p = P('a/b')
def test_with_suffix_empty(self):
P = self.cls
# Path doesn't have a "filename" component.
- self.assertEqual(P('').with_suffix('.gz'), P('.gz'))
- self.assertEqual(P('.').with_suffix('.gz'), P('..gz'))
- self.assertEqual(P('/').with_suffix('.gz'), P('/.gz'))
+ self.assertRaises(ValueError, P('').with_suffix, '.gz')
+ self.assertRaises(ValueError, P('/').with_suffix, '.gz')
def test_with_suffix_seps(self):
P = self.cls