mirror of
https://github.com/pre-commit/pre-commit-hooks.git
synced 2026-04-09 12:54:17 +00:00
new hook tests for broken symlinks
This commit is contained in:
parent
5edf945ca5
commit
896c0cfdc0
5 changed files with 41 additions and 0 deletions
26
pre_commit_hooks/check_symlinks.py
Normal file
26
pre_commit_hooks/check_symlinks.py
Normal file
|
|
@ -0,0 +1,26 @@
|
||||||
|
from __future__ import absolute_import
|
||||||
|
from __future__ import print_function
|
||||||
|
from __future__ import unicode_literals
|
||||||
|
|
||||||
|
import argparse
|
||||||
|
import os
|
||||||
|
import os.path
|
||||||
|
|
||||||
|
|
||||||
|
def check_symlinks(argv=None):
|
||||||
|
parser = argparse.ArgumentParser(description='Checks for broken symlinks.')
|
||||||
|
parser.add_argument('filenames', nargs='*', help='Filenames to check')
|
||||||
|
args = parser.parse_args(argv)
|
||||||
|
|
||||||
|
retv = 0
|
||||||
|
|
||||||
|
for filename in args.filenames:
|
||||||
|
if os.path.islink(filename) and not os.path.exists(filename):
|
||||||
|
print('{0}: Broken symlink'.format(filename))
|
||||||
|
retv = 1
|
||||||
|
|
||||||
|
return retv
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
exit(check_symlinks())
|
||||||
1
testing/resources/broken_symlink
Symbolic link
1
testing/resources/broken_symlink
Symbolic link
|
|
@ -0,0 +1 @@
|
||||||
|
does_not_exist
|
||||||
0
testing/resources/does_exist
Normal file
0
testing/resources/does_exist
Normal file
1
testing/resources/working_symlink
Symbolic link
1
testing/resources/working_symlink
Symbolic link
|
|
@ -0,0 +1 @@
|
||||||
|
does_exist
|
||||||
13
tests/check_symlinks_test.py
Normal file
13
tests/check_symlinks_test.py
Normal file
|
|
@ -0,0 +1,13 @@
|
||||||
|
import pytest
|
||||||
|
|
||||||
|
from pre_commit_hooks.check_symlinks import check_symlinks
|
||||||
|
from testing.util import get_resource_path
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.mark.parametrize(('filename', 'expected_retval'), (
|
||||||
|
('broken_symlink', 1),
|
||||||
|
('working_symlink', 0),
|
||||||
|
))
|
||||||
|
def test_check_symlinks(filename, expected_retval):
|
||||||
|
ret = check_symlinks([get_resource_path(filename)])
|
||||||
|
assert ret == expected_retval
|
||||||
Loading…
Add table
Add a link
Reference in a new issue