new hook tests for broken symlinks

This commit is contained in:
Benjamin Chess 2016-01-14 15:25:46 -08:00
parent 5edf945ca5
commit 896c0cfdc0
5 changed files with 41 additions and 0 deletions

View 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())

View File

@ -0,0 +1 @@
does_not_exist

View File

View File

@ -0,0 +1 @@
does_exist

View 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