Commit 6966c759 authored by Jason R. Coombs's avatar Jason R. Coombs

Extract patch and its purpose into a specialized function which can be excluded from coverage.

parent 9af3f420
......@@ -2220,15 +2220,18 @@ register_namespace_handler(object, null_ns_handler)
def normalize_path(filename):
"""Normalize a file/dir name for comparison purposes"""
if sys.platform == 'cygwin':
# This results in a call to getcwd() if `filename` is relative. Contrary
# to POSIX 2008 on Cygwin getcwd (3) contains symlink components. Using
# os.path.abspath() works around this limitation. A fix in os.getcwd()
# would probably better, in Cygwin even more so except that this seems
# to be by design...
return os.path.normcase(os.path.realpath(os.path.abspath(filename)))
else:
return os.path.normcase(os.path.realpath(filename))
return os.path.normcase(os.path.realpath(_cygwin_patch(filename)))
def _cygwin_patch(filename): # pragma: nocover
"""
Contrary to POSIX 2008, on Cygwin, getcwd (3) contains
symlink components. Using
os.path.abspath() works around this limitation. A fix in os.getcwd()
would probably better, in Cygwin even more so, except
that this seems to be by design...
"""
return os.path.abspath(filename) if sys.platform == 'cygwin' else filename
def _normalize_cached(filename, _cache={}):
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment