File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -31,8 +31,11 @@ def in_env(repo_cmd_runner, language_version):
3131
3232
3333def norm_version (version ):
34+ version = os .path .expanduser (version )
3435 if os .name == 'nt' : # pragma: no cover (windows)
3536 if not distutils .spawn .find_executable (version ):
37+ # expanduser introduces a leading slash
38+ version = version .strip ('\\ ' )
3639 # The default place for python on windows is:
3740 # C:\PythonXX\python.exe
3841 version = r'C:\{0}\python.exe' .format (version .replace ('.' , '' ))
Original file line number Diff line number Diff line change 22from __future__ import unicode_literals
33
44import io
5+ import os
56import os .path
67import shutil
78
1213from pre_commit .clientlib .validate_config import CONFIG_JSON_SCHEMA
1314from pre_commit .clientlib .validate_config import validate_config_extra
1415from pre_commit .jsonschema_extensions import apply_defaults
16+ from pre_commit .languages .python import norm_version
1517from pre_commit .languages .python import PythonEnv
1618from pre_commit .repository import Repository
1719from pre_commit .util import cmd_output
@@ -414,3 +416,15 @@ def test_local_repository():
414416 with pytest .raises (NotImplementedError ):
415417 local_repo .manifest
416418 assert len (local_repo .hooks ) == 1
419+
420+
421+ def test_norm_version_expanduser (): # pragma: no cover
422+ home = os .path .expanduser ('~' )
423+ if os .name == 'nt' :
424+ path = r'~\python343'
425+ expected_path = r'C:{0}\python343\python.exe' .format (home )
426+ else :
427+ path = '~/.pyenv/versions/3.4.3/bin/python'
428+ expected_path = home + '/.pyenv/versions/3.4.3/bin/python'
429+ result = norm_version (path )
430+ assert result == expected_path
You can’t perform that action at this time.
0 commit comments