mirror of
https://github.com/pre-commit/pre-commit.git
synced 2026-01-14 04:50:20 -06:00
Merge pull request #572 from pre-commit/test_more_crlf
Add more tests for staged-files-only with crlf diffs
This commit is contained in:
@@ -312,3 +312,59 @@ def test_non_utf8_conflicting_diff(foo_staged, cmd_runner):
|
||||
with io.open('foo', 'w') as foo_file:
|
||||
foo_file.write('')
|
||||
_test_foo_state(foo_staged, contents, 'AM', encoding='latin-1')
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def in_git_dir(tmpdir):
|
||||
with tmpdir.as_cwd():
|
||||
cmd_output('git', 'init', '.')
|
||||
yield tmpdir
|
||||
|
||||
|
||||
BEFORE = b'1\n2\n'
|
||||
AFTER = b'3\n4\n'
|
||||
|
||||
|
||||
def _crlf(b):
|
||||
return b.replace(b'\n', b'\r\n')
|
||||
|
||||
|
||||
def _write(b):
|
||||
with open('foo', 'wb') as f:
|
||||
f.write(b)
|
||||
|
||||
|
||||
def git_add():
|
||||
cmd_output('git', 'add', 'foo')
|
||||
|
||||
|
||||
def assert_no_diff():
|
||||
tree = cmd_output('git', 'write-tree')[1].strip()
|
||||
cmd_output('git', 'diff-index', tree, '--exit-code')
|
||||
|
||||
|
||||
BEFORE_AFTER = pytest.mark.parametrize(
|
||||
('before', 'after'),
|
||||
(
|
||||
(BEFORE, AFTER),
|
||||
(_crlf(BEFORE), _crlf(AFTER)),
|
||||
(_crlf(BEFORE), AFTER),
|
||||
(BEFORE, _crlf(AFTER)),
|
||||
),
|
||||
)
|
||||
|
||||
|
||||
@BEFORE_AFTER
|
||||
def test_default(in_git_dir, cmd_runner, before, after):
|
||||
_write(before)
|
||||
git_add()
|
||||
_write(after)
|
||||
with staged_files_only(cmd_runner):
|
||||
assert_no_diff()
|
||||
|
||||
|
||||
@BEFORE_AFTER
|
||||
@pytest.mark.parametrize('autocrlf', ('true', 'false', 'input'))
|
||||
def test_autocrlf_true(in_git_dir, cmd_runner, before, after, autocrlf):
|
||||
cmd_output('git', 'config', '--local', 'core.autocrlf', autocrlf)
|
||||
test_default(in_git_dir, cmd_runner, before, after)
|
||||
|
||||
Reference in New Issue
Block a user