未验证 提交 2d8ad3c6 编写于 作者: P Paul Moore 提交者: GitHub

Merge pull request #5180 from pradyunsg/fix/5179

Normalize case before checking for paths
......@@ -163,13 +163,15 @@ def message_about_scripts_not_on_PATH(scripts):
grouped_by_dir[parent_dir].add(script_name)
# We don't want to warn for directories that are on PATH.
not_warn_dirs = os.environ["PATH"].split(os.pathsep)
not_warn_dirs = [
os.path.normcase(i) for i in os.environ["PATH"].split(os.pathsep)
]
# If an executable sits with sys.executable, we don't warn for it.
# This covers the case of venv invocations without activating the venv.
not_warn_dirs.append(os.path.dirname(sys.executable))
not_warn_dirs.append(os.path.normcase(os.path.dirname(sys.executable)))
warn_for = {
parent_dir: scripts for parent_dir, scripts in grouped_by_dir.items()
if parent_dir not in not_warn_dirs
if os.path.normcase(parent_dir) not in not_warn_dirs
}
if not warn_for:
return None
......
......@@ -453,3 +453,13 @@ class TestMessageAboutScriptsNotOnPATH(object):
scripts=['/a/b/foo']
)
assert retval is None
def test_PATH_check_case_insensitive_on_windows(self):
retval = self._template(
paths=['C:\\A\\b'],
scripts=['c:\\a\\b\\c', 'C:/A/b/d']
)
if WINDOWS:
assert retval is None
else:
assert retval is not None
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册