From 5311c1d7ab24f862b9b0bb272a9aee9c4f4ac023 Mon Sep 17 00:00:00 2001 From: Antoine Pitrou Date: Tue, 24 Jan 2012 08:59:28 +0100 Subject: Issue #13772: In os.symlink() under Windows, do not try to guess the link target's type (file or directory). The detection was buggy and made the call non-atomic (therefore prone to race conditions). --- Lib/test/test_os.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'Lib/test') diff --git a/Lib/test/test_os.py b/Lib/test/test_os.py index 4da1f1d7be..e573bd2a56 100644 --- a/Lib/test/test_os.py +++ b/Lib/test/test_os.py @@ -476,7 +476,12 @@ class WalkTests(unittest.TestCase): f.write("I'm " + path + " and proud of it. Blame test_os.\n") f.close() if support.can_symlink(): - os.symlink(os.path.abspath(t2_path), link_path) + if os.name == 'nt': + def symlink_to_dir(src, dest): + os.symlink(src, dest, True) + else: + symlink_to_dir = os.symlink + symlink_to_dir(os.path.abspath(t2_path), link_path) sub2_tree = (sub2_path, ["link"], ["tmp3"]) else: sub2_tree = (sub2_path, [], ["tmp3"]) @@ -1106,7 +1111,7 @@ class Win32SymlinkTests(unittest.TestCase): os.remove(self.missing_link) def test_directory_link(self): - os.symlink(self.dirlink_target, self.dirlink) + os.symlink(self.dirlink_target, self.dirlink, True) self.assertTrue(os.path.exists(self.dirlink)) self.assertTrue(os.path.isdir(self.dirlink)) self.assertTrue(os.path.islink(self.dirlink)) -- cgit v1.2.1