mirror of
https://github.com/python/cpython.git
synced 2025-09-26 18:29:57 +00:00
Issue #28353: Make test_os.WalkTests.test_walk_bad_dir stable.
This commit is contained in:
commit
b6bd81dee9
1 changed files with 15 additions and 10 deletions
|
@ -989,16 +989,21 @@ class WalkTests(unittest.TestCase):
|
||||||
errors = []
|
errors = []
|
||||||
walk_it = self.walk(self.walk_path, onerror=errors.append)
|
walk_it = self.walk(self.walk_path, onerror=errors.append)
|
||||||
root, dirs, files = next(walk_it)
|
root, dirs, files = next(walk_it)
|
||||||
self.assertFalse(errors)
|
self.assertEqual(errors, [])
|
||||||
dir1 = dirs[0]
|
dir1 = 'SUB1'
|
||||||
dir1new = dir1 + '.new'
|
path1 = os.path.join(root, dir1)
|
||||||
os.rename(os.path.join(root, dir1), os.path.join(root, dir1new))
|
path1new = os.path.join(root, dir1 + '.new')
|
||||||
roots = [r for r, d, f in walk_it]
|
os.rename(path1, path1new)
|
||||||
self.assertTrue(errors)
|
try:
|
||||||
self.assertNotIn(os.path.join(root, dir1), roots)
|
roots = [r for r, d, f in walk_it]
|
||||||
self.assertNotIn(os.path.join(root, dir1new), roots)
|
self.assertTrue(errors)
|
||||||
for dir2 in dirs[1:]:
|
self.assertNotIn(path1, roots)
|
||||||
self.assertIn(os.path.join(root, dir2), 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()")
|
@unittest.skipUnless(hasattr(os, 'fwalk'), "Test needs os.fwalk()")
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue