diff options
author | Brian Curtin <brian@python.org> | 2011-06-13 20:16:04 (GMT) |
---|---|---|
committer | Brian Curtin <brian@python.org> | 2011-06-13 20:16:04 (GMT) |
commit | d25aef55c8b0025dd2ee7de11b526f34ceed6b66 (patch) | |
tree | 567a6c5afb5d1fbb53aed9a8f99eff1b907190cb /Lib/test/support.py | |
parent | 5b52f957977f450613c6eafdc9216ae7993d4d49 (diff) | |
download | cpython-d25aef55c8b0025dd2ee7de11b526f34ceed6b66.zip cpython-d25aef55c8b0025dd2ee7de11b526f34ceed6b66.tar.gz cpython-d25aef55c8b0025dd2ee7de11b526f34ceed6b66.tar.bz2 |
Fix #12084. os.stat on Windows wasn't working properly with relative symlinks.
Use of DeviceIoControl to obtain the symlink path via the reparse tag was
removed. The code now uses GetFinalPathNameByHandle in the case of a
symbolic link and works properly given the added test which creates a symbolic
link and calls os.stat on it from multiple locations.
Victor Stinner also noticed an issue with os.lstat following the os.stat
code path when being passed bytes. The posix_lstat function was adjusted to
properly hook up win32_lstat instead of the previous STAT macro (win32_stat).
Diffstat (limited to 'Lib/test/support.py')
-rw-r--r-- | Lib/test/support.py | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/Lib/test/support.py b/Lib/test/support.py index 2aedf24..9c8f6d3 100644 --- a/Lib/test/support.py +++ b/Lib/test/support.py @@ -1490,7 +1490,7 @@ def can_symlink(): try: os.symlink(TESTFN, TESTFN + "can_symlink") can = True - except (OSError, NotImplementedError): + except (OSError, NotImplementedError, AttributeError): can = False _can_symlink = can return can |