mirror of
https://github.com/pre-commit/pre-commit-hooks.git
synced 2026-04-04 19:26:52 +00:00
Add a checker for executables without shebangs
This commit is contained in:
parent
4a457a725e
commit
13991f09d2
6 changed files with 93 additions and 0 deletions
35
tests/check_executables_have_shebangs_test.py
Normal file
35
tests/check_executables_have_shebangs_test.py
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
from __future__ import absolute_import
|
||||
from __future__ import unicode_literals
|
||||
|
||||
import pytest
|
||||
|
||||
from pre_commit_hooks.check_executables_have_shebangs import main
|
||||
|
||||
|
||||
@pytest.mark.parametrize('content', (
|
||||
b'#!/bin/bash\nhello world\n',
|
||||
b'#!/usr/bin/env python3.6',
|
||||
b'#!python',
|
||||
'#!☃'.encode('UTF-8'),
|
||||
))
|
||||
def test_has_shebang(content, tmpdir):
|
||||
path = tmpdir.join('path')
|
||||
path.write(content, 'wb')
|
||||
assert main((path.strpath,)) == 0
|
||||
|
||||
|
||||
@pytest.mark.parametrize('content', (
|
||||
b'',
|
||||
b' #!python\n',
|
||||
b'\n#!python\n',
|
||||
b'python\n',
|
||||
'☃'.encode('UTF-8'),
|
||||
|
||||
))
|
||||
def test_bad_shebang(content, tmpdir, capsys):
|
||||
path = tmpdir.join('path')
|
||||
path.write(content, 'wb')
|
||||
assert main((path.strpath,)) == 1
|
||||
_, stderr = capsys.readouterr()
|
||||
assert stderr.startswith('{}: marked executable but'.format(path.strpath))
|
||||
Loading…
Add table
Add a link
Reference in a new issue