cpython: 470224ec16b6 (original) (raw)
--- a/Lib/test/test_os.py +++ b/Lib/test/test_os.py @@ -869,13 +869,23 @@ class WalkTests(unittest.TestCase): os.symlink('broken', broken_link_path, True) os.symlink(join('tmp3', 'broken'), broken_link2_path, True) os.symlink(join('SUB21', 'tmp5'), broken_link3_path, True)
self.sub2_tree = (sub2_path, ["link", "SUB21"],[](#l1.7)
self.sub2_tree = (sub2_path, ["SUB21", "link"],[](#l1.8) ["broken_link", "broken_link2", "broken_link3",[](#l1.9) "tmp3"])[](#l1.10) else:[](#l1.11) self.sub2_tree = (sub2_path, [], ["tmp3"])[](#l1.12)
try:[](#l1.15)
os.listdir(self.sub21_path)[](#l1.16)
except PermissionError:[](#l1.17)
pass[](#l1.18)
else:[](#l1.19)
os.chmod(self.sub21_path, stat.S_IRWXU)[](#l1.20)
os.unlink(tmp5_path)[](#l1.21)
os.rmdir(self.sub21_path)[](#l1.22)
self.sub21_path = None[](#l1.23)
del self.sub2_tree[1][:1][](#l1.24)
def test_walk_topdown(self): # Walk top-down. @@ -888,6 +898,7 @@ class WalkTests(unittest.TestCase): flipped = all[0][1][0] != "SUB1" all[0][1].sort() all[3 - 2 * flipped][-1].sort()
all[3 - 2 * flipped][1].sort()[](#l1.32) self.assertEqual(all[0], (self.walk_path, ["SUB1", "SUB2"], ["tmp1"]))[](#l1.33) self.assertEqual(all[1 + flipped], (self.sub1_path, ["SUB11"], ["tmp2"]))[](#l1.34) self.assertEqual(all[2 + flipped], (self.sub11_path, [], []))[](#l1.35)
@@ -908,6 +919,7 @@ class WalkTests(unittest.TestCase): (self.walk_path, ["SUB2"], ["tmp1"])) all[1][-1].sort()
all[1][1].sort()[](#l1.40) self.assertEqual(all[1], self.sub2_tree)[](#l1.41)
def test_walk_bottom_up(self): @@ -921,6 +933,7 @@ class WalkTests(unittest.TestCase): flipped = all[3][1][0] != "SUB1" all[3][1].sort() all[2 - 2 * flipped][-1].sort()
all[2 - 2 * flipped][1].sort()[](#l1.48) self.assertEqual(all[3],[](#l1.49) (self.walk_path, ["SUB1", "SUB2"], ["tmp1"]))[](#l1.50) self.assertEqual(all[flipped],[](#l1.51)
@@ -949,7 +962,8 @@ class WalkTests(unittest.TestCase): # Windows, which doesn't have a recursive delete command. The # (not so) subtlety is that rmdir will fail unless the dir's # kids are removed first, so bottom up is essential.
os.chmod(self.sub21_path, stat.S_IRWXU)[](#l1.56)
if self.sub21_path:[](#l1.57)
os.chmod(self.sub21_path, stat.S_IRWXU)[](#l1.58) for root, dirs, files in os.walk(support.TESTFN, topdown=False):[](#l1.59) for name in files:[](#l1.60) os.remove(os.path.join(root, name))[](#l1.61)
@@ -1045,7 +1059,8 @@ class FwalkTests(WalkTests): def tearDown(self): # cleanup
os.chmod(self.sub21_path, stat.S_IRWXU)[](#l1.66)
if self.sub21_path:[](#l1.67)
os.chmod(self.sub21_path, stat.S_IRWXU)[](#l1.68) for root, dirs, files, rootfd in os.fwalk(support.TESTFN, topdown=False):[](#l1.69) for name in files:[](#l1.70) os.unlink(name, dir_fd=rootfd)[](#l1.71)