summaryrefslogtreecommitdiffstats
path: root/Lib/test/test_os.py
diff options
context:
space:
mode:
authorSerhiy Storchaka <storchaka@gmail.com>2016-10-28 06:17:38 (GMT)
committerSerhiy Storchaka <storchaka@gmail.com>2016-10-28 06:17:38 (GMT)
commit7865dfff2e3408948bada0034ec1d3d29f655cc1 (patch)
tree30d227a6aa3a8ec0ba8e53860d7e293fd9fd06c6 /Lib/test/test_os.py
parenta65a474e19d53a5b4799f124cfb5d33aa74207ac (diff)
downloadcpython-7865dfff2e3408948bada0034ec1d3d29f655cc1.zip
cpython-7865dfff2e3408948bada0034ec1d3d29f655cc1.tar.gz
cpython-7865dfff2e3408948bada0034ec1d3d29f655cc1.tar.bz2
Issue #28353: Make test_os.WalkTests.test_walk_bad_dir stable.
Diffstat (limited to 'Lib/test/test_os.py')
-rw-r--r--Lib/test/test_os.py25
1 files changed, 15 insertions, 10 deletions
diff --git a/Lib/test/test_os.py b/Lib/test/test_os.py
index 2fd8a35..10383cf 100644
--- a/Lib/test/test_os.py
+++ b/Lib/test/test_os.py
@@ -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()")