adjust error outputs to be more standardized
This commit is contained in:
parent
48c60be15b
commit
b13ff9b868
|
@ -28,13 +28,13 @@ def check_docstring_first(src: bytes, filename: str = '<unknown>') -> int:
|
||||||
if tok_type == tokenize.STRING and scol == 0:
|
if tok_type == tokenize.STRING and scol == 0:
|
||||||
if found_docstring_line is not None:
|
if found_docstring_line is not None:
|
||||||
print(
|
print(
|
||||||
f'{filename}:{sline} Multiple module docstrings '
|
f'{filename}:{sline}: Multiple module docstrings '
|
||||||
f'(first docstring on line {found_docstring_line}).',
|
f'(first docstring on line {found_docstring_line}).',
|
||||||
)
|
)
|
||||||
return 1
|
return 1
|
||||||
elif found_code_line is not None:
|
elif found_code_line is not None:
|
||||||
print(
|
print(
|
||||||
f'{filename}:{sline} Module docstring appears after code '
|
f'{filename}:{sline}: Module docstring appears after code '
|
||||||
f'(code seen on line {found_code_line}).',
|
f'(code seen on line {found_code_line}).',
|
||||||
)
|
)
|
||||||
return 1
|
return 1
|
||||||
|
|
|
@ -10,6 +10,7 @@ from pre_commit_hooks.util import cmd_output
|
||||||
CONFLICT_PATTERNS = [
|
CONFLICT_PATTERNS = [
|
||||||
b'<<<<<<< ',
|
b'<<<<<<< ',
|
||||||
b'======= ',
|
b'======= ',
|
||||||
|
b'=======\r\n',
|
||||||
b'=======\n',
|
b'=======\n',
|
||||||
b'>>>>>>> ',
|
b'>>>>>>> ',
|
||||||
]
|
]
|
||||||
|
@ -39,12 +40,12 @@ def main(argv: Sequence[str] | None = None) -> int:
|
||||||
retcode = 0
|
retcode = 0
|
||||||
for filename in args.filenames:
|
for filename in args.filenames:
|
||||||
with open(filename, 'rb') as inputfile:
|
with open(filename, 'rb') as inputfile:
|
||||||
for i, line in enumerate(inputfile):
|
for i, line in enumerate(inputfile, start=1):
|
||||||
for pattern in CONFLICT_PATTERNS:
|
for pattern in CONFLICT_PATTERNS:
|
||||||
if line.startswith(pattern):
|
if line.startswith(pattern):
|
||||||
print(
|
print(
|
||||||
f'Merge conflict string "{pattern.decode()}" '
|
f'{filename}:{i}: Merge conflict string '
|
||||||
f'found in {filename}:{i + 1}',
|
f'{pattern.strip().decode()!r} found',
|
||||||
)
|
)
|
||||||
retcode = 1
|
retcode = 1
|
||||||
|
|
||||||
|
|
|
@ -65,7 +65,7 @@ def check_file(filename: str) -> int:
|
||||||
visitor.visit(ast_obj)
|
visitor.visit(ast_obj)
|
||||||
|
|
||||||
for bp in visitor.breakpoints:
|
for bp in visitor.breakpoints:
|
||||||
print(f'{filename}:{bp.line}:{bp.col} - {bp.name} {bp.reason}')
|
print(f'{filename}:{bp.line}:{bp.col}: {bp.name} {bp.reason}')
|
||||||
|
|
||||||
return int(bool(visitor.breakpoints))
|
return int(bool(visitor.breakpoints))
|
||||||
|
|
||||||
|
|
|
@ -17,7 +17,7 @@ TESTS = (
|
||||||
b'from __future__ import unicode_literals\n'
|
b'from __future__ import unicode_literals\n'
|
||||||
b'"foo"\n',
|
b'"foo"\n',
|
||||||
1,
|
1,
|
||||||
'{filename}:2 Module docstring appears after code '
|
'{filename}:2: Module docstring appears after code '
|
||||||
'(code seen on line 1).\n',
|
'(code seen on line 1).\n',
|
||||||
),
|
),
|
||||||
# Test double docstring
|
# Test double docstring
|
||||||
|
@ -26,7 +26,7 @@ TESTS = (
|
||||||
b'from __future__ import absolute_import\n'
|
b'from __future__ import absolute_import\n'
|
||||||
b'"fake docstring"\n',
|
b'"fake docstring"\n',
|
||||||
1,
|
1,
|
||||||
'{filename}:3 Multiple module docstrings '
|
'{filename}:3: Multiple module docstrings '
|
||||||
'(first docstring on line 1).\n',
|
'(first docstring on line 1).\n',
|
||||||
),
|
),
|
||||||
# Test multiple lines of code above
|
# Test multiple lines of code above
|
||||||
|
@ -35,7 +35,7 @@ TESTS = (
|
||||||
b'import sys\n'
|
b'import sys\n'
|
||||||
b'"docstring"\n',
|
b'"docstring"\n',
|
||||||
1,
|
1,
|
||||||
'{filename}:3 Module docstring appears after code '
|
'{filename}:3: Module docstring appears after code '
|
||||||
'(code seen on line 1).\n',
|
'(code seen on line 1).\n',
|
||||||
),
|
),
|
||||||
# String literals in expressions are ok.
|
# String literals in expressions are ok.
|
||||||
|
|
|
@ -101,8 +101,14 @@ def repository_pending_merge(tmpdir):
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.usefixtures('f1_is_a_conflict_file')
|
@pytest.mark.usefixtures('f1_is_a_conflict_file')
|
||||||
def test_merge_conflicts_git():
|
def test_merge_conflicts_git(capsys):
|
||||||
assert main(['f1']) == 1
|
assert main(['f1']) == 1
|
||||||
|
out, _ = capsys.readouterr()
|
||||||
|
assert out == (
|
||||||
|
"f1:1: Merge conflict string '<<<<<<<' found\n"
|
||||||
|
"f1:3: Merge conflict string '=======' found\n"
|
||||||
|
"f1:5: Merge conflict string '>>>>>>>' found\n"
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.parametrize(
|
@pytest.mark.parametrize(
|
||||||
|
@ -139,7 +145,7 @@ def test_care_when_assumed_merge(tmpdir):
|
||||||
assert main([str(f.realpath()), '--assume-in-merge']) == 1
|
assert main([str(f.realpath()), '--assume-in-merge']) == 1
|
||||||
|
|
||||||
|
|
||||||
def test_worktree_merge_conflicts(f1_is_a_conflict_file, tmpdir):
|
def test_worktree_merge_conflicts(f1_is_a_conflict_file, tmpdir, capsys):
|
||||||
worktree = tmpdir.join('worktree')
|
worktree = tmpdir.join('worktree')
|
||||||
cmd_output('git', 'worktree', 'add', str(worktree))
|
cmd_output('git', 'worktree', 'add', str(worktree))
|
||||||
with worktree.as_cwd():
|
with worktree.as_cwd():
|
||||||
|
@ -148,4 +154,4 @@ def test_worktree_merge_conflicts(f1_is_a_conflict_file, tmpdir):
|
||||||
)
|
)
|
||||||
msg = f1_is_a_conflict_file.join('.git/worktrees/worktree/MERGE_MSG')
|
msg = f1_is_a_conflict_file.join('.git/worktrees/worktree/MERGE_MSG')
|
||||||
assert msg.exists()
|
assert msg.exists()
|
||||||
test_merge_conflicts_git()
|
test_merge_conflicts_git(capsys)
|
||||||
|
|
|
@ -55,7 +55,9 @@ def test_non_utf8_file(tmpdir):
|
||||||
assert main((str(f_py),)) == 0
|
assert main((str(f_py),)) == 0
|
||||||
|
|
||||||
|
|
||||||
def test_py37_breakpoint(tmpdir):
|
def test_py37_breakpoint(tmpdir, capsys):
|
||||||
f_py = tmpdir.join('f.py')
|
f_py = tmpdir.join('f.py')
|
||||||
f_py.write('def f():\n breakpoint()\n')
|
f_py.write('def f():\n breakpoint()\n')
|
||||||
assert main((str(f_py),)) == 1
|
assert main((str(f_py),)) == 1
|
||||||
|
out, _ = capsys.readouterr()
|
||||||
|
assert out == f'{f_py}:2:4: breakpoint called\n'
|
||||||
|
|
Loading…
Reference in New Issue