diff options
author | Serhiy Storchaka <storchaka@gmail.com> | 2016-10-25 11:34:38 (GMT) |
---|---|---|
committer | Serhiy Storchaka <storchaka@gmail.com> | 2016-10-25 11:34:38 (GMT) |
commit | af4e4747f5e32ec60dbc98fdbeb9681bf3fafe64 (patch) | |
tree | 1b7ff49a9011fed33ec5d9aedd5615a68618ca48 /Lib/test/test_os.py | |
parent | 179111bd22c1e713c5e026b37300be0c63d4c204 (diff) | |
parent | 42bababba62023383291c7413a5d453374ecd933 (diff) | |
download | cpython-af4e4747f5e32ec60dbc98fdbeb9681bf3fafe64.zip cpython-af4e4747f5e32ec60dbc98fdbeb9681bf3fafe64.tar.gz cpython-af4e4747f5e32ec60dbc98fdbeb9681bf3fafe64.tar.bz2 |
Issue #28353: os.fwalk() no longer fails on broken links.
Diffstat (limited to 'Lib/test/test_os.py')
-rw-r--r-- | Lib/test/test_os.py | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/Lib/test/test_os.py b/Lib/test/test_os.py index 1746ca4..8859838 100644 --- a/Lib/test/test_os.py +++ b/Lib/test/test_os.py @@ -853,38 +853,54 @@ class WalkTests(unittest.TestCase): # SUB11/ no kids # SUB2/ a file kid and a dirsymlink kid # tmp3 + # SUB21/ not readable + # tmp5 # link/ a symlink to TESTFN.2 # broken_link + # broken_link2 + # broken_link3 # TEST2/ # tmp4 a lone file self.walk_path = join(support.TESTFN, "TEST1") self.sub1_path = join(self.walk_path, "SUB1") self.sub11_path = join(self.sub1_path, "SUB11") sub2_path = join(self.walk_path, "SUB2") + sub21_path = join(sub2_path, "SUB21") tmp1_path = join(self.walk_path, "tmp1") tmp2_path = join(self.sub1_path, "tmp2") tmp3_path = join(sub2_path, "tmp3") + tmp5_path = join(sub21_path, "tmp3") self.link_path = join(sub2_path, "link") t2_path = join(support.TESTFN, "TEST2") tmp4_path = join(support.TESTFN, "TEST2", "tmp4") broken_link_path = join(sub2_path, "broken_link") + broken_link2_path = join(sub2_path, "broken_link2") + broken_link3_path = join(sub2_path, "broken_link3") # Create stuff. os.makedirs(self.sub11_path) os.makedirs(sub2_path) + os.makedirs(sub21_path) os.makedirs(t2_path) - for path in tmp1_path, tmp2_path, tmp3_path, tmp4_path: + for path in tmp1_path, tmp2_path, tmp3_path, tmp4_path, tmp5_path: with open(path, "x") as f: f.write("I'm " + path + " and proud of it. Blame test_os.\n") if support.can_symlink(): os.symlink(os.path.abspath(t2_path), self.link_path) os.symlink('broken', broken_link_path, True) - self.sub2_tree = (sub2_path, ["link"], ["broken_link", "tmp3"]) + 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"], + ["broken_link", "broken_link2", "broken_link3", + "tmp3"]) else: self.sub2_tree = (sub2_path, [], ["tmp3"]) + os.chmod(sub21_path, 0) + self.addCleanup(os.chmod, sub21_path, stat.S_IRWXU) + def test_walk_topdown(self): # Walk top-down. all = list(self.walk(self.walk_path)) |