mirror of
https://github.com/python/cpython.git
synced 2025-08-31 14:07:50 +00:00
Issue #28666: Now test.support.rmtree is able to remove unwritable or
unreadable directories.
This commit is contained in:
commit
0e7dbe901c
3 changed files with 56 additions and 12 deletions
|
@ -1,5 +1,6 @@
|
|||
import importlib
|
||||
import shutil
|
||||
import stat
|
||||
import sys
|
||||
import os
|
||||
import unittest
|
||||
|
@ -12,9 +13,6 @@ TESTFN = support.TESTFN
|
|||
|
||||
|
||||
class TestSupport(unittest.TestCase):
|
||||
def setUp(self):
|
||||
support.unlink(TESTFN)
|
||||
tearDown = setUp
|
||||
|
||||
def test_import_module(self):
|
||||
support.import_module("ftplib")
|
||||
|
@ -46,15 +44,28 @@ class TestSupport(unittest.TestCase):
|
|||
support.unlink(TESTFN)
|
||||
|
||||
def test_rmtree(self):
|
||||
TESTDIRN = os.path.basename(tempfile.mkdtemp(dir='.'))
|
||||
self.addCleanup(support.rmtree, TESTDIRN)
|
||||
support.rmtree(TESTDIRN)
|
||||
dirpath = support.TESTFN + 'd'
|
||||
subdirpath = os.path.join(dirpath, 'subdir')
|
||||
os.mkdir(dirpath)
|
||||
os.mkdir(subdirpath)
|
||||
support.rmtree(dirpath)
|
||||
self.assertFalse(os.path.exists(dirpath))
|
||||
with support.swap_attr(support, 'verbose', 0):
|
||||
support.rmtree(dirpath)
|
||||
|
||||
os.mkdir(TESTDIRN)
|
||||
os.mkdir(os.path.join(TESTDIRN, TESTDIRN))
|
||||
support.rmtree(TESTDIRN)
|
||||
self.assertFalse(os.path.exists(TESTDIRN))
|
||||
support.rmtree(TESTDIRN)
|
||||
os.mkdir(dirpath)
|
||||
os.mkdir(subdirpath)
|
||||
os.chmod(dirpath, stat.S_IRUSR|stat.S_IXUSR)
|
||||
with support.swap_attr(support, 'verbose', 0):
|
||||
support.rmtree(dirpath)
|
||||
self.assertFalse(os.path.exists(dirpath))
|
||||
|
||||
os.mkdir(dirpath)
|
||||
os.mkdir(subdirpath)
|
||||
os.chmod(dirpath, 0)
|
||||
with support.swap_attr(support, 'verbose', 0):
|
||||
support.rmtree(dirpath)
|
||||
self.assertFalse(os.path.exists(dirpath))
|
||||
|
||||
def test_forget(self):
|
||||
mod_filename = TESTFN + '.py'
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue