File tree 2 files changed +24
-1
lines changed
2 files changed +24
-1
lines changed Original file line number Diff line number Diff line change @@ -2481,6 +2481,14 @@ def test_read(self):
2481
2481
assert a .read_text () == "content of a"
2482
2482
assert a .read_bytes () == b"content of a"
2483
2483
2484
+ def test_joinpath (self ):
2485
+ for zipfile_abcde in self .zipfile_abcde ():
2486
+ root = zipfile .Path (zipfile_abcde )
2487
+ a = root .joinpath ("a" )
2488
+ assert a .is_file ()
2489
+ e = root .joinpath ("b" ).joinpath ("d" ).joinpath ("e.txt" )
2490
+ assert e .read_text () == "content of e"
2491
+
2484
2492
def test_traverse_truediv (self ):
2485
2493
for zipfile_abcde in self .zipfile_abcde ():
2486
2494
root = zipfile .Path (zipfile_abcde )
@@ -2502,5 +2510,11 @@ def test_traverse_pathlike(self):
2502
2510
root = zipfile .Path (zipfile_abcde )
2503
2511
root / pathlib .Path ("a" )
2504
2512
2513
+ def test_parent (self ):
2514
+ for zipfile_abcde in self .zipfile_abcde ():
2515
+ root = zipfile .Path (zipfile_abcde )
2516
+ assert (root / 'a' ).parent .at == ''
2517
+ assert (root / 'a' / 'b' ).parent .at == 'a/'
2518
+
2505
2519
if __name__ == "__main__" :
2506
2520
unittest .main ()
Original file line number Diff line number Diff line change @@ -2218,12 +2218,14 @@ def __str__(self):
2218
2218
def __repr__ (self ):
2219
2219
return self .__repr .format (self = self )
2220
2220
2221
- def __truediv__ (self , add ):
2221
+ def joinpath (self , add ):
2222
2222
next = posixpath .join (self .at , add )
2223
2223
next_dir = posixpath .join (self .at , add , "" )
2224
2224
names = self ._names ()
2225
2225
return self ._next (next_dir if next not in names and next_dir in names else next )
2226
2226
2227
+ __truediv__ = joinpath
2228
+
2227
2229
@staticmethod
2228
2230
def _add_implied_dirs (names ):
2229
2231
return names + [
@@ -2232,6 +2234,13 @@ def _add_implied_dirs(names):
2232
2234
if name and name + "/" not in names
2233
2235
]
2234
2236
2237
+ @property
2238
+ def parent (self ):
2239
+ parent_at = posixpath .dirname (self .at )
2240
+ if parent_at :
2241
+ parent_at += '/'
2242
+ return self ._next (parent_at )
2243
+
2235
2244
def _names (self ):
2236
2245
return self ._add_implied_dirs (self .root .namelist ())
2237
2246
You can’t perform that action at this time.
0 commit comments