Commit 3dc70e8a authored by Serhiy Storchaka's avatar Serhiy Storchaka

Issue #28353: Make test_os.WalkTests.test_walk_bad_dir stable.

parent 39cc54f6
......@@ -980,16 +980,21 @@ class WalkTests(unittest.TestCase):
errors = []
walk_it = self.walk(self.walk_path, onerror=errors.append)
root, dirs, files = next(walk_it)
self.assertFalse(errors)
dir1 = dirs[0]
dir1new = dir1 + '.new'
os.rename(os.path.join(root, dir1), os.path.join(root, dir1new))
roots = [r for r, d, f in walk_it]
self.assertTrue(errors)
self.assertNotIn(os.path.join(root, dir1), roots)
self.assertNotIn(os.path.join(root, dir1new), roots)
for dir2 in dirs[1:]:
self.assertIn(os.path.join(root, dir2), roots)
self.assertEqual(errors, [])
dir1 = 'SUB1'
path1 = os.path.join(root, dir1)
path1new = os.path.join(root, dir1 + '.new')
os.rename(path1, path1new)
try:
roots = [r for r, d, f in walk_it]
self.assertTrue(errors)
self.assertNotIn(path1, roots)
self.assertNotIn(path1new, roots)
for dir2 in dirs:
if dir2 != dir1:
self.assertIn(os.path.join(root, dir2), roots)
finally:
os.rename(path1new, path1)
@unittest.skipUnless(hasattr(os, 'fwalk'), "Test needs os.fwalk()")
......
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