diff options
Diffstat (limited to 'Lib')
| -rw-r--r-- | Lib/os.py | 10 | ||||
| -rw-r--r-- | Lib/test/test_os.py | 40 |
2 files changed, 9 insertions, 41 deletions
@@ -221,7 +221,7 @@ def renames(old, new): __all__.extend(["makedirs", "removedirs", "renames"]) -def walk(top, topdown=True, onerror=None, followlinks=False): +def walk(top, topdown=True, onerror=None): """Directory tree generator. For each directory in the directory tree rooted at top (including top @@ -257,10 +257,6 @@ def walk(top, topdown=True, onerror=None, followlinks=False): to abort the walk. Note that the filename is available as the filename attribute of the exception object. - By default, os.walk does not follow symbolic links to subdirectories on - systems that support them. In order to get this functionality, set the - optional argument 'followlinks' to true. - Caution: if you pass a relative pathname for top, don't change the current working directory between resumptions of walk. walk never changes the current directory, and assumes that the client doesn't @@ -304,8 +300,8 @@ def walk(top, topdown=True, onerror=None, followlinks=False): yield top, dirs, nondirs for name in dirs: path = join(top, name) - if followlinks or not islink(path): - for x in walk(path, topdown, onerror, followlinks): + if not islink(path): + for x in walk(path, topdown, onerror): yield x if not topdown: yield top, dirs, nondirs diff --git a/Lib/test/test_os.py b/Lib/test/test_os.py index a40dd5e..9dcdb18 100644 --- a/Lib/test/test_os.py +++ b/Lib/test/test_os.py @@ -277,34 +277,22 @@ class WalkTests(unittest.TestCase): # SUB1/ a file kid and a directory kid # tmp2 # SUB11/ no kids - # SUB2/ a file kid and a dirsymlink kid + # SUB2/ just a file kid # tmp3 - # link/ a symlink to TESTFN.2 - # TESTFN.2/ - # tmp4 a lone file sub1_path = join(test_support.TESTFN, "SUB1") sub11_path = join(sub1_path, "SUB11") sub2_path = join(test_support.TESTFN, "SUB2") tmp1_path = join(test_support.TESTFN, "tmp1") tmp2_path = join(sub1_path, "tmp2") tmp3_path = join(sub2_path, "tmp3") - link_path = join(sub2_path, "link") - t2_path = join(test_support.TESTFN + ".2") - tmp4_path = join(test_support.TESTFN + ".2", "tmp4") # Create stuff. os.makedirs(sub11_path) os.makedirs(sub2_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: f = file(path, "w") f.write("I'm " + path + " and proud of it. Blame test_os.\n") f.close() - if hasattr(os, "symlink"): - os.symlink(os.path.join("..", "..", t2_path), link_path) - else: - # it must be a directory because the test expects that - os.mkdir(link_path) # Walk top-down. all = list(os.walk(test_support.TESTFN)) @@ -317,7 +305,7 @@ class WalkTests(unittest.TestCase): self.assertEqual(all[0], (test_support.TESTFN, ["SUB1", "SUB2"], ["tmp1"])) self.assertEqual(all[1 + flipped], (sub1_path, ["SUB11"], ["tmp2"])) self.assertEqual(all[2 + flipped], (sub11_path, [], [])) - self.assertEqual(all[3 - 2 * flipped], (sub2_path, ["link"], ["tmp3"])) + self.assertEqual(all[3 - 2 * flipped], (sub2_path, [], ["tmp3"])) # Prune the search. all = [] @@ -329,7 +317,7 @@ class WalkTests(unittest.TestCase): dirs.remove('SUB1') self.assertEqual(len(all), 2) self.assertEqual(all[0], (test_support.TESTFN, ["SUB2"], ["tmp1"])) - self.assertEqual(all[1], (sub2_path, ["link"], ["tmp3"])) + self.assertEqual(all[1], (sub2_path, [], ["tmp3"])) # Walk bottom-up. all = list(os.walk(test_support.TESTFN, topdown=False)) @@ -342,17 +330,7 @@ class WalkTests(unittest.TestCase): self.assertEqual(all[3], (test_support.TESTFN, ["SUB1", "SUB2"], ["tmp1"])) self.assertEqual(all[flipped], (sub11_path, [], [])) self.assertEqual(all[flipped + 1], (sub1_path, ["SUB11"], ["tmp2"])) - self.assertEqual(all[2 - 2 * flipped], (sub2_path, ["link"], ["tmp3"])) - - # Walk, following symlinks. - for root, dirs, files in os.walk(test_support.TESTFN, followlinks=True): - if root == link_path: - self.assertEqual(dirs, []) - self.assertEqual(files, ["tmp4"]) - break - else: - self.fail("Didn't follow symlink with followlinks=True") - + self.assertEqual(all[2 - 2 * flipped], (sub2_path, [], ["tmp3"])) # Tear everything down. This is a decent use for bottom-up on # Windows, which doesn't have a recursive delete command. The @@ -362,14 +340,8 @@ class WalkTests(unittest.TestCase): for name in files: os.remove(join(root, name)) for name in dirs: - dirname = join(root, name) - if not os.path.islink(dirname): - os.rmdir(dirname) - else: - os.remove(dirname) + os.rmdir(join(root, name)) os.rmdir(test_support.TESTFN) - os.unlink(tmp4_path) - os.rmdir(t2_path) class MakedirTests (unittest.TestCase): def setUp(self): |
