bpo-32907: pathlib: Fix test_resolve_common failure on Windows#5812
Closed
izbyshev wants to merge 2 commits intopython:masterfrom
Closed
bpo-32907: pathlib: Fix test_resolve_common failure on Windows#5812izbyshev wants to merge 2 commits intopython:masterfrom
izbyshev wants to merge 2 commits intopython:masterfrom
Conversation
eryksun
reviewed
Feb 22, 2018
Lib/test/test_pathlib.py
Outdated
Contributor
There was a problem hiding this comment.
Resolving makes sense in general. For example, "C:\Users" could be a junction or the user's %LocalAppData% may be a junction or relocated to a path that traverses a junction, or the user's %TEMP% could be non-standard.
That said, it might be useful in other cases to add nt._getlongpathname and nt._getshortpathname functions that call WinAPI GetLongPathName and GetShortPathName, and add methods to get the short and long paths to pathlib's Windows flavour. In particular I can see someone wanting the long path, but not the fully resolved path.
Contributor
Author
There was a problem hiding this comment.
I agree. I've changed the wording a bit to make it look less like a Windows-specific fix. Thank you!
Canonicalize the temporary directory path since it is used in comparisons with other canonicalized paths. Use Path.resolve() instead of os.path.realpath() to ensure that symlinks and "short" (8.3) filenames are resolved on Windows.
Contributor
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Canonicalize the temporary directory path since it is used in comparisons with other canonicalized paths.
Use Path.resolve() instead of os.path.realpath() to ensure that symlinks and "short" (8.3) filenames are resolved on Windows.
https://bugs.python.org/issue32907