mirror of
https://github.com/pre-commit/pre-commit-hooks.git
synced 2026-04-04 19:26:52 +00:00
Teach check-large-files-added about git-lfs. Reslves #82.
This commit is contained in:
parent
2c62e4aafc
commit
3f6f23d73f
6 changed files with 109 additions and 2 deletions
|
|
@ -1,6 +1,10 @@
|
|||
from __future__ import absolute_import
|
||||
from __future__ import unicode_literals
|
||||
|
||||
import subprocess
|
||||
|
||||
import pytest
|
||||
|
||||
from pre_commit_hooks.check_added_large_files import find_large_added_files
|
||||
from pre_commit_hooks.check_added_large_files import main
|
||||
from pre_commit_hooks.util import cmd_output
|
||||
|
|
@ -62,3 +66,40 @@ def test_integration(temp_git_dir):
|
|||
|
||||
# Should fail with --maxkb
|
||||
assert main(argv=['--maxkb', '9', 'f.py']) == 1
|
||||
|
||||
|
||||
def has_gitlfs():
|
||||
output = cmd_output('git', 'lfs', retcode=None, stderr=subprocess.STDOUT)
|
||||
return 'git lfs status' in output
|
||||
|
||||
|
||||
xfailif_no_gitlfs = pytest.mark.xfail(
|
||||
not has_gitlfs(), reason='This test requires git-lfs',
|
||||
)
|
||||
|
||||
|
||||
@xfailif_no_gitlfs
|
||||
def test_allows_gitlfs(temp_git_dir): # pragma: no cover
|
||||
with cwd(temp_git_dir):
|
||||
# Work around https://github.com/github/git-lfs/issues/913
|
||||
cmd_output('git', 'commit', '--allow-empty', '-m', 'foo')
|
||||
cmd_output('git', 'lfs', 'install')
|
||||
write_file('f.py', 'a' * 10000)
|
||||
cmd_output('git', 'lfs', 'track', 'f.py')
|
||||
cmd_output('git', 'add', '.')
|
||||
# Should succeed
|
||||
assert main(('--maxkb', '9', 'f.py')) == 0
|
||||
|
||||
|
||||
@xfailif_no_gitlfs
|
||||
def test_moves_with_gitlfs(temp_git_dir): # pragma: no cover
|
||||
with cwd(temp_git_dir):
|
||||
cmd_output('git', 'lfs', 'install')
|
||||
cmd_output('git', 'lfs', 'track', 'a.bin', 'b.bin')
|
||||
# First add the file we're going to move
|
||||
write_file('a.bin', 'a' * 10000)
|
||||
cmd_output('git', 'add', '.')
|
||||
cmd_output('git', 'commit', '-am', 'foo')
|
||||
# Now move it and make sure the hook still succeeds
|
||||
cmd_output('git', 'mv', 'a.bin', 'b.bin')
|
||||
assert main(('--maxkb', '9', 'b.bin')) == 0
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue