mirror of
https://github.com/python/cpython.git
synced 2025-07-24 11:44:31 +00:00
GH-73991: Make pathlib.Path.delete()
private. (#123315)
Per feedback from Paul Moore on GH-123158, it's better to defer making `Path.delete()` public than ship it with under-designed error handling capabilities. We leave a remnant `_delete()` method, which is used by `move()`. Any functionality not needed by `move()` is deleted.
This commit is contained in:
parent
a1ddaaef58
commit
033d537cd4
7 changed files with 48 additions and 287 deletions
|
@ -2884,20 +2884,20 @@ class DummyPathTest(DummyPurePathTest):
|
|||
|
||||
def test_delete_file(self):
|
||||
p = self.cls(self.base) / 'fileA'
|
||||
p.delete()
|
||||
p._delete()
|
||||
self.assertFileNotFound(p.stat)
|
||||
self.assertFileNotFound(p.unlink)
|
||||
|
||||
def test_delete_dir(self):
|
||||
base = self.cls(self.base)
|
||||
base.joinpath('dirA').delete()
|
||||
base.joinpath('dirA')._delete()
|
||||
self.assertRaises(FileNotFoundError, base.joinpath('dirA').stat)
|
||||
self.assertRaises(FileNotFoundError, base.joinpath('dirA', 'linkC').lstat)
|
||||
base.joinpath('dirB').delete()
|
||||
base.joinpath('dirB')._delete()
|
||||
self.assertRaises(FileNotFoundError, base.joinpath('dirB').stat)
|
||||
self.assertRaises(FileNotFoundError, base.joinpath('dirB', 'fileB').stat)
|
||||
self.assertRaises(FileNotFoundError, base.joinpath('dirB', 'linkD').lstat)
|
||||
base.joinpath('dirC').delete()
|
||||
base.joinpath('dirC')._delete()
|
||||
self.assertRaises(FileNotFoundError, base.joinpath('dirC').stat)
|
||||
self.assertRaises(FileNotFoundError, base.joinpath('dirC', 'dirD').stat)
|
||||
self.assertRaises(FileNotFoundError, base.joinpath('dirC', 'dirD', 'fileD').stat)
|
||||
|
@ -2912,7 +2912,7 @@ class DummyPathTest(DummyPurePathTest):
|
|||
dir_.mkdir()
|
||||
link = tmp / 'link'
|
||||
link.symlink_to(dir_)
|
||||
link.delete()
|
||||
link._delete()
|
||||
self.assertTrue(dir_.exists())
|
||||
self.assertFalse(link.exists(follow_symlinks=False))
|
||||
|
||||
|
@ -2934,7 +2934,7 @@ class DummyPathTest(DummyPurePathTest):
|
|||
link3 = dir1 / 'link3'
|
||||
link3.symlink_to(file1)
|
||||
# make sure symlinks are removed but not followed
|
||||
dir1.delete()
|
||||
dir1._delete()
|
||||
self.assertFalse(dir1.exists())
|
||||
self.assertTrue(dir3.exists())
|
||||
self.assertTrue(file1.exists())
|
||||
|
@ -2944,15 +2944,7 @@ class DummyPathTest(DummyPurePathTest):
|
|||
tmp.mkdir()
|
||||
# filename is guaranteed not to exist
|
||||
filename = tmp / 'foo'
|
||||
self.assertRaises(FileNotFoundError, filename.delete)
|
||||
# test that ignore_errors option is honored
|
||||
filename.delete(ignore_errors=True)
|
||||
# test on_error
|
||||
errors = []
|
||||
filename.delete(on_error=errors.append)
|
||||
self.assertEqual(len(errors), 1)
|
||||
self.assertIsInstance(errors[0], FileNotFoundError)
|
||||
self.assertEqual(errors[0].filename, str(filename))
|
||||
self.assertRaises(FileNotFoundError, filename._delete)
|
||||
|
||||
def setUpWalk(self):
|
||||
# Build:
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue