def test_mixed_line_ending_fixes_auto(input_s, output, tmpdir):
    path = tmpdir.join('file.txt')
    path.write_binary(input_s)
    ret = main((path.strpath,))

    assert ret == 1
    assert path.read_binary() == output
def test_fix_crlf(tmpdir):
    path = tmpdir.join('input.txt')
    path.write_binary(b'foo\r\nbar\rbaz\n')
    ret = main(('--fix=crlf', path.strpath))

    assert ret == 1
    assert path.read_binary() == b'foo\r\nbar\r\nbaz\r\n'
def test_line_endings_ok(fix_option, input_s, tmpdir):
    path = tmpdir.join('input.txt')
    path.write_binary(input_s)
    ret = main((fix_option, path.strpath))

    assert ret == 0
    assert path.read_binary() == input_s
def test_non_mixed_no_newline_end_of_file(tmpdir):
    path = tmpdir.join('f.txt')
    path.write_binary(b'foo\nbar\nbaz')
    assert not main((path.strpath,))
    # the hook *could* fix the end of the file, but leaves it alone
    # this is mostly to document the current behaviour
    assert path.read_binary() == b'foo\nbar\nbaz'
def test_non_mixed_no_newline_end_of_file(tmpdir):
    path = tmpdir.join('f.txt')
    path.write_binary(b'foo\nbar\nbaz')
    assert not main((path.strpath,))
    # the hook *could* fix the end of the file, but leaves it alone
    # this is mostly to document the current behaviour
    assert path.read_binary() == b'foo\nbar\nbaz'
def test_mixed_line_ending_fixes_auto(input_s, output, tmpdir):
    path = tmpdir.join('file.txt')
    path.write_binary(input_s)
    ret = main((path.strpath,))

    assert ret == 1
    assert path.read_binary() == output
def test_fix_crlf(tmpdir):
    path = tmpdir.join('input.txt')
    path.write_binary(b'foo\r\nbar\rbaz\n')
    ret = main(('--fix=crlf', path.strpath))

    assert ret == 1
    assert path.read_binary() == b'foo\r\nbar\r\nbaz\r\n'
def test_no_fix_does_not_modify(tmpdir):
    path = tmpdir.join('input.txt')
    contents = b'foo\r\nbar\rbaz\nwomp\n'
    path.write_binary(contents)
    ret = main(('--fix=no', path.strpath))

    assert ret == 1
    assert path.read_binary() == contents
def test_mixed_no_newline_end_of_file(tmpdir):
    path = tmpdir.join('f.txt')
    path.write_binary(b'foo\r\nbar\nbaz')
    assert main((path.strpath,))
    # the hook rewrites the end of the file, this is slightly inconsistent
    # with the non-mixed case but I think this is the better behaviour
    # this is mostly to document the current behaviour
    assert path.read_binary() == b'foo\nbar\nbaz\n'
def test_fix_lf_all_crlf(tmpdir):
    """Regression test for #239"""
    path = tmpdir.join('input.txt')
    path.write_binary(b'foo\r\nbar\r\n')
    ret = main(('--fix=lf', path.strpath))

    assert ret == 1
    assert path.read_binary() == b'foo\nbar\n'
def test_mixed_no_newline_end_of_file(tmpdir):
    path = tmpdir.join('f.txt')
    path.write_binary(b'foo\r\nbar\nbaz')
    assert main((path.strpath,))
    # the hook rewrites the end of the file, this is slightly inconsistent
    # with the non-mixed case but I think this is the better behaviour
    # this is mostly to document the current behaviour
    assert path.read_binary() == b'foo\nbar\nbaz\n'
def test_fix_lf_all_crlf(tmpdir):
    """Regression test for #239"""
    path = tmpdir.join('input.txt')
    path.write_binary(b'foo\r\nbar\r\n')
    ret = main(('--fix=lf', path.strpath))

    assert ret == 1
    assert path.read_binary() == b'foo\nbar\n'
def test_fix_lf(tmpdir, capsys):
    path = tmpdir.join('input.txt')
    path.write_binary(b'foo\r\nbar\rbaz\n')
    ret = main(('--fix=lf', path.strpath))

    assert ret == 1
    assert path.read_binary() == b'foo\nbar\nbaz\n'
    out, _ = capsys.readouterr()
    assert out == '{}: fixed mixed line endings\n'.format(path)
def test_line_endings_ok(fix_option, input_s, tmpdir, capsys):
    path = tmpdir.join('input.txt')
    path.write_binary(input_s)
    ret = main((fix_option, path.strpath))

    assert ret == 0
    assert path.read_binary() == input_s
    out, _ = capsys.readouterr()
    assert out == ''
def test_no_fix_does_not_modify(tmpdir, capsys):
    path = tmpdir.join('input.txt')
    contents = b'foo\r\nbar\rbaz\nwomp\n'
    path.write_binary(contents)
    ret = main(('--fix=no', path.strpath))

    assert ret == 1
    assert path.read_binary() == contents
    out, _ = capsys.readouterr()
    assert out == '{}: mixed line endings\n'.format(path)