Commit 5e1f816b authored by Žiga Seilnacht's avatar Žiga Seilnacht

Fix WalkTests.test_traversal() on Windows. The cleanup in

MakedirTests.setUp() can now be removed.
parent 48483637
...@@ -313,9 +313,9 @@ class WalkTests(unittest.TestCase): ...@@ -313,9 +313,9 @@ class WalkTests(unittest.TestCase):
f.close() f.close()
if hasattr(os, "symlink"): if hasattr(os, "symlink"):
os.symlink(os.path.abspath(t2_path), link_path) os.symlink(os.path.abspath(t2_path), link_path)
sub2_tree = (sub2_path, ["link"], ["tmp3"])
else: else:
# it must be a directory because the test expects that sub2_tree = (sub2_path, [], ["tmp3"])
os.mkdir(link_path)
# Walk top-down. # Walk top-down.
all = list(os.walk(walk_path)) all = list(os.walk(walk_path))
...@@ -328,7 +328,7 @@ class WalkTests(unittest.TestCase): ...@@ -328,7 +328,7 @@ class WalkTests(unittest.TestCase):
self.assertEqual(all[0], (walk_path, ["SUB1", "SUB2"], ["tmp1"])) self.assertEqual(all[0], (walk_path, ["SUB1", "SUB2"], ["tmp1"]))
self.assertEqual(all[1 + flipped], (sub1_path, ["SUB11"], ["tmp2"])) self.assertEqual(all[1 + flipped], (sub1_path, ["SUB11"], ["tmp2"]))
self.assertEqual(all[2 + flipped], (sub11_path, [], [])) self.assertEqual(all[2 + flipped], (sub11_path, [], []))
self.assertEqual(all[3 - 2 * flipped], (sub2_path, ["link"], ["tmp3"])) self.assertEqual(all[3 - 2 * flipped], sub2_tree)
# Prune the search. # Prune the search.
all = [] all = []
...@@ -340,7 +340,7 @@ class WalkTests(unittest.TestCase): ...@@ -340,7 +340,7 @@ class WalkTests(unittest.TestCase):
dirs.remove('SUB1') dirs.remove('SUB1')
self.assertEqual(len(all), 2) self.assertEqual(len(all), 2)
self.assertEqual(all[0], (walk_path, ["SUB2"], ["tmp1"])) self.assertEqual(all[0], (walk_path, ["SUB2"], ["tmp1"]))
self.assertEqual(all[1], (sub2_path, ["link"], ["tmp3"])) self.assertEqual(all[1], sub2_tree)
# Walk bottom-up. # Walk bottom-up.
all = list(os.walk(walk_path, topdown=False)) all = list(os.walk(walk_path, topdown=False))
...@@ -353,8 +353,9 @@ class WalkTests(unittest.TestCase): ...@@ -353,8 +353,9 @@ class WalkTests(unittest.TestCase):
self.assertEqual(all[3], (walk_path, ["SUB1", "SUB2"], ["tmp1"])) self.assertEqual(all[3], (walk_path, ["SUB1", "SUB2"], ["tmp1"]))
self.assertEqual(all[flipped], (sub11_path, [], [])) self.assertEqual(all[flipped], (sub11_path, [], []))
self.assertEqual(all[flipped + 1], (sub1_path, ["SUB11"], ["tmp2"])) self.assertEqual(all[flipped + 1], (sub1_path, ["SUB11"], ["tmp2"]))
self.assertEqual(all[2 - 2 * flipped], (sub2_path, ["link"], ["tmp3"])) self.assertEqual(all[2 - 2 * flipped], sub2_tree)
if hasattr(os, "symlink"):
# Walk, following symlinks. # Walk, following symlinks.
for root, dirs, files in os.walk(walk_path, followlinks=True): for root, dirs, files in os.walk(walk_path, followlinks=True):
if root == link_path: if root == link_path:
...@@ -364,16 +365,16 @@ class WalkTests(unittest.TestCase): ...@@ -364,16 +365,16 @@ class WalkTests(unittest.TestCase):
else: else:
self.fail("Didn't follow symlink with followlinks=True") self.fail("Didn't follow symlink with followlinks=True")
def tearDown(self):
# Tear everything down. This is a decent use for bottom-up on # Tear everything down. This is a decent use for bottom-up on
# Windows, which doesn't have a recursive delete command. The # Windows, which doesn't have a recursive delete command. The
# (not so) subtlety is that rmdir will fail unless the dir's # (not so) subtlety is that rmdir will fail unless the dir's
# kids are removed first, so bottom up is essential. # kids are removed first, so bottom up is essential.
for root, dirs, files in os.walk(test_support.TESTFN, topdown=False): for root, dirs, files in os.walk(test_support.TESTFN, topdown=False):
for name in files: for name in files:
os.remove(join(root, name)) os.remove(os.path.join(root, name))
for name in dirs: for name in dirs:
dirname = join(root, name) dirname = os.path.join(root, name)
if not os.path.islink(dirname): if not os.path.islink(dirname):
os.rmdir(dirname) os.rmdir(dirname)
else: else:
...@@ -382,14 +383,6 @@ class WalkTests(unittest.TestCase): ...@@ -382,14 +383,6 @@ class WalkTests(unittest.TestCase):
class MakedirTests (unittest.TestCase): class MakedirTests (unittest.TestCase):
def setUp(self): def setUp(self):
try:
os.rmdir(test_support.TESTFN)
except OSError:
pass
try:
os.unlink(test_support.TESTFN)
except OSError:
pass
os.mkdir(test_support.TESTFN) os.mkdir(test_support.TESTFN)
def test_makedir(self): def test_makedir(self):
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment