Browse Source

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

pull/9921/head
Serhiy Storchaka 9 years ago
parent
commit
b6bd81dee9
  1. 25
      Lib/test/test_os.py

25
Lib/test/test_os.py

@ -989,16 +989,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()")

Loading…
Cancel
Save