Fix pre-commit install on subst drives

This commit is contained in:
Anthony Sottile
2021-02-23 18:52:24 -08:00
parent 0047fa35dd
commit f9fbe18abf
2 changed files with 15 additions and 2 deletions

View File

@@ -52,10 +52,10 @@ def get_root() -> str:
# "rev-parse --show-cdup" to get the appropriate path, but must perform
# an extra check to see if we are in the .git directory.
try:
root = os.path.realpath(
root = os.path.abspath(
cmd_output('git', 'rev-parse', '--show-cdup')[1].strip(),
)
git_dir = os.path.realpath(get_git_dir())
git_dir = os.path.abspath(get_git_dir())
except CalledProcessError:
raise FatalError(
'git failed. Is it installed, and are you in a Git repository '

View File

@@ -7,7 +7,9 @@ import pytest
import pre_commit.constants as C
from pre_commit import main
from pre_commit.errors import FatalError
from pre_commit.util import cmd_output
from testing.auto_namedtuple import auto_namedtuple
from testing.util import cwd
@pytest.mark.parametrize(
@@ -54,6 +56,17 @@ def test_adjust_args_and_chdir_relative_things(in_git_dir):
assert args.files == [os.path.join('foo', 'f1'), os.path.join('foo', 'f2')]
@pytest.mark.skipif(os.name != 'nt', reason='windows feature')
def test_install_on_subst(in_git_dir, store): # pragma: posix no cover
assert not os.path.exists('Z:')
cmd_output('subst', 'Z:', str(in_git_dir))
try:
with cwd('Z:'):
test_adjust_args_and_chdir_noop('Z:\\')
finally:
cmd_output('subst', '/d', 'Z:')
def test_adjust_args_and_chdir_non_relative_config(in_git_dir):
in_git_dir.join('foo').ensure_dir().chdir()