bpo-37520: Correct behavior for zipfile.Path.parent (GH-14638)

* bpo-37520: Correct behavior for zipfile.Path.parent

* 📜🤖 Added by blurb_it.
This commit is contained in:
Jason R. Coombs 2019-07-07 17:37:50 -04:00 committed by GitHub
parent f6cdd3ff68
commit 38f44b4a4a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 13 additions and 1 deletions

View File

@ -2514,5 +2514,16 @@ class TestPath(unittest.TestCase):
assert (root / 'a').parent.at == '' assert (root / 'a').parent.at == ''
assert (root / 'a' / 'b').parent.at == 'a/' assert (root / 'a' / 'b').parent.at == 'a/'
def test_dir_parent(self):
for zipfile_abcde in self.zipfile_abcde():
root = zipfile.Path(zipfile_abcde)
assert (root / 'b').parent.at == ''
assert (root / 'b/').parent.at == ''
def test_missing_dir_parent(self):
for zipfile_abcde in self.zipfile_abcde():
root = zipfile.Path(zipfile_abcde)
assert (root / 'missing dir/').parent.at == ''
if __name__ == "__main__": if __name__ == "__main__":
unittest.main() unittest.main()

View File

@ -2236,7 +2236,7 @@ class Path:
@property @property
def parent(self): def parent(self):
parent_at = posixpath.dirname(self.at) parent_at = posixpath.dirname(self.at.rstrip('/'))
if parent_at: if parent_at:
parent_at += '/' parent_at += '/'
return self._next(parent_at) return self._next(parent_at)

View File

@ -0,0 +1 @@
Correct behavior for zipfile.Path.parent when the path object identifies a subdirectory.