mirror of
https://github.com/pre-commit/pre-commit.git
synced 2026-02-17 08:14:42 +04:00
mypy passes with check_untyped_defs
This commit is contained in:
parent
ab19b94811
commit
fa536a8693
25 changed files with 161 additions and 89 deletions
|
|
@ -18,7 +18,7 @@ def test_install_environment_argspec(language):
|
|||
expected_argspec = ArgSpec(
|
||||
args=['prefix', 'version', 'additional_dependencies'],
|
||||
)
|
||||
argspec = inspect.getfullargpsec(languages[language].install_environment)
|
||||
argspec = inspect.getfullargspec(languages[language].install_environment)
|
||||
assert argspec == expected_argspec
|
||||
|
||||
|
||||
|
|
@ -28,21 +28,21 @@ def test_ENVIRONMENT_DIR(language):
|
|||
|
||||
|
||||
@pytest.mark.parametrize('language', all_languages)
|
||||
def test_run_hook_argpsec(language):
|
||||
def test_run_hook_argspec(language):
|
||||
expected_argspec = ArgSpec(args=['hook', 'file_args', 'color'])
|
||||
argspec = inspect.getfullargpsec(languages[language].run_hook)
|
||||
argspec = inspect.getfullargspec(languages[language].run_hook)
|
||||
assert argspec == expected_argspec
|
||||
|
||||
|
||||
@pytest.mark.parametrize('language', all_languages)
|
||||
def test_get_default_version_argspec(language):
|
||||
expected_argspec = ArgSpec(args=[])
|
||||
argspec = inspect.getfullargpsec(languages[language].get_default_version)
|
||||
argspec = inspect.getfullargspec(languages[language].get_default_version)
|
||||
assert argspec == expected_argspec
|
||||
|
||||
|
||||
@pytest.mark.parametrize('language', all_languages)
|
||||
def test_healthy_argspec(language):
|
||||
expected_argspec = ArgSpec(args=['prefix', 'language_version'])
|
||||
argspec = inspect.getfullargpsec(languages[language].healthy)
|
||||
argspec = inspect.getfullargspec(languages[language].healthy)
|
||||
assert argspec == expected_argspec
|
||||
|
|
|
|||
|
|
@ -1,5 +1,8 @@
|
|||
import argparse
|
||||
import os.path
|
||||
from typing import NamedTuple
|
||||
from typing import Optional
|
||||
from typing import Sequence
|
||||
from unittest import mock
|
||||
|
||||
import pytest
|
||||
|
|
@ -24,11 +27,11 @@ def test_append_replace_default(argv, expected):
|
|||
assert parser.parse_args(argv).f == expected
|
||||
|
||||
|
||||
class Args:
|
||||
def __init__(self, **kwargs):
|
||||
kwargs.setdefault('command', 'help')
|
||||
kwargs.setdefault('config', C.CONFIG_FILE)
|
||||
self.__dict__.update(kwargs)
|
||||
class Args(NamedTuple):
|
||||
command: str = 'help'
|
||||
config: str = C.CONFIG_FILE
|
||||
files: Sequence[str] = []
|
||||
repo: Optional[str] = None
|
||||
|
||||
|
||||
def test_adjust_args_and_chdir_not_in_git_dir(in_tmpdir):
|
||||
|
|
@ -73,6 +76,7 @@ def test_adjust_args_try_repo_repo_relative(in_git_dir):
|
|||
in_git_dir.join('foo').ensure_dir().chdir()
|
||||
|
||||
args = Args(command='try-repo', repo='../foo', files=[])
|
||||
assert args.repo is not None
|
||||
assert os.path.exists(args.repo)
|
||||
main._adjust_args_and_chdir(args)
|
||||
assert os.getcwd() == in_git_dir
|
||||
|
|
|
|||
|
|
@ -11,6 +11,12 @@ from pre_commit.envcontext import Var
|
|||
from pre_commit.util import make_executable
|
||||
|
||||
|
||||
def _echo_exe() -> str:
|
||||
exe = distutils.spawn.find_executable('echo')
|
||||
assert exe is not None
|
||||
return exe
|
||||
|
||||
|
||||
def test_file_doesnt_exist():
|
||||
assert parse_shebang.parse_filename('herp derp derp') == ()
|
||||
|
||||
|
|
@ -27,8 +33,7 @@ def test_find_executable_full_path():
|
|||
|
||||
|
||||
def test_find_executable_on_path():
|
||||
expected = distutils.spawn.find_executable('echo')
|
||||
assert parse_shebang.find_executable('echo') == expected
|
||||
assert parse_shebang.find_executable('echo') == _echo_exe()
|
||||
|
||||
|
||||
def test_find_executable_not_found_none():
|
||||
|
|
@ -110,30 +115,29 @@ def test_normexe_already_full_path():
|
|||
|
||||
|
||||
def test_normexe_gives_full_path():
|
||||
expected = distutils.spawn.find_executable('echo')
|
||||
assert parse_shebang.normexe('echo') == expected
|
||||
assert os.sep in expected
|
||||
assert parse_shebang.normexe('echo') == _echo_exe()
|
||||
assert os.sep in _echo_exe()
|
||||
|
||||
|
||||
def test_normalize_cmd_trivial():
|
||||
cmd = (distutils.spawn.find_executable('echo'), 'hi')
|
||||
cmd = (_echo_exe(), 'hi')
|
||||
assert parse_shebang.normalize_cmd(cmd) == cmd
|
||||
|
||||
|
||||
def test_normalize_cmd_PATH():
|
||||
cmd = ('echo', '--version')
|
||||
expected = (distutils.spawn.find_executable('echo'), '--version')
|
||||
expected = (_echo_exe(), '--version')
|
||||
assert parse_shebang.normalize_cmd(cmd) == expected
|
||||
|
||||
|
||||
def test_normalize_cmd_shebang(in_tmpdir):
|
||||
echo = distutils.spawn.find_executable('echo').replace(os.sep, '/')
|
||||
echo = _echo_exe().replace(os.sep, '/')
|
||||
path = write_executable(echo)
|
||||
assert parse_shebang.normalize_cmd((path,)) == (echo, path)
|
||||
|
||||
|
||||
def test_normalize_cmd_PATH_shebang_full_path(in_tmpdir):
|
||||
echo = distutils.spawn.find_executable('echo').replace(os.sep, '/')
|
||||
echo = _echo_exe().replace(os.sep, '/')
|
||||
path = write_executable(echo)
|
||||
with bin_on_path():
|
||||
ret = parse_shebang.normalize_cmd(('run',))
|
||||
|
|
@ -141,7 +145,7 @@ def test_normalize_cmd_PATH_shebang_full_path(in_tmpdir):
|
|||
|
||||
|
||||
def test_normalize_cmd_PATH_shebang_PATH(in_tmpdir):
|
||||
echo = distutils.spawn.find_executable('echo')
|
||||
echo = _echo_exe()
|
||||
path = write_executable('/usr/bin/env echo')
|
||||
with bin_on_path():
|
||||
ret = parse_shebang.normalize_cmd(('run',))
|
||||
|
|
|
|||
|
|
@ -2,6 +2,8 @@ import os.path
|
|||
import re
|
||||
import shutil
|
||||
import sys
|
||||
from typing import Any
|
||||
from typing import Dict
|
||||
from unittest import mock
|
||||
|
||||
import cfgv
|
||||
|
|
@ -763,7 +765,7 @@ def test_local_python_repo(store, local_python_config):
|
|||
|
||||
|
||||
def test_default_language_version(store, local_python_config):
|
||||
config = {
|
||||
config: Dict[str, Any] = {
|
||||
'default_language_version': {'python': 'fake'},
|
||||
'default_stages': ['commit'],
|
||||
'repos': [local_python_config],
|
||||
|
|
@ -780,7 +782,7 @@ def test_default_language_version(store, local_python_config):
|
|||
|
||||
|
||||
def test_default_stages(store, local_python_config):
|
||||
config = {
|
||||
config: Dict[str, Any] = {
|
||||
'default_language_version': {'python': C.DEFAULT},
|
||||
'default_stages': ['commit'],
|
||||
'repos': [local_python_config],
|
||||
|
|
|
|||
|
|
@ -24,7 +24,8 @@ def patch_dir(tempdir_factory):
|
|||
|
||||
def get_short_git_status():
|
||||
git_status = cmd_output('git', 'status', '-s')[1]
|
||||
return dict(reversed(line.split()) for line in git_status.splitlines())
|
||||
line_parts = [line.split() for line in git_status.splitlines()]
|
||||
return {v: k for k, v in line_parts}
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue