parent
b73acb198e
commit
865409743e
|
@ -40,6 +40,11 @@
|
|||
language: python
|
||||
types: [text, executable]
|
||||
stages: [commit, push, manual]
|
||||
- id: check-illegal-windows-names
|
||||
name: check illegal windows names
|
||||
entry: Illegal windows filenames detected
|
||||
language: fail
|
||||
files: '(?i)(^|/)(CON|PRN|AUX|NUL|COM[1-9]|LPT[1-9])(\.|/|$)'
|
||||
- id: check-json
|
||||
name: check json
|
||||
description: checks json files for parseable syntax.
|
||||
|
|
|
@ -51,6 +51,9 @@ Checks for a common error of placing code before the docstring.
|
|||
#### `check-executables-have-shebangs`
|
||||
Checks that non-binary executables have a proper shebang.
|
||||
|
||||
#### `check-illegal-windows-names`
|
||||
Check for files that cannot be created on Windows.
|
||||
|
||||
#### `check-json`
|
||||
Attempts to load all json files to verify syntax.
|
||||
|
||||
|
|
|
@ -0,0 +1,46 @@
|
|||
from __future__ import annotations
|
||||
|
||||
import os.path
|
||||
import re
|
||||
|
||||
import pytest
|
||||
|
||||
from pre_commit_hooks.check_yaml import yaml
|
||||
|
||||
|
||||
@pytest.fixture(scope='module')
|
||||
def hook_re():
|
||||
here = os.path.dirname(__file__)
|
||||
with open(os.path.join(here, '..', '.pre-commit-hooks.yaml')) as f:
|
||||
hook_defs = yaml.load(f)
|
||||
hook, = (
|
||||
hook
|
||||
for hook in hook_defs
|
||||
if hook['id'] == 'check-illegal-windows-names'
|
||||
)
|
||||
yield re.compile(hook['files'])
|
||||
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
's',
|
||||
(
|
||||
pytest.param('aux.txt', id='with ext'),
|
||||
pytest.param('aux', id='without ext'),
|
||||
pytest.param('AuX.tXt', id='capitals'),
|
||||
pytest.param('com7.dat', id='com with digit'),
|
||||
),
|
||||
)
|
||||
def test_check_illegal_windows_names_matches(hook_re, s):
|
||||
assert hook_re.search(s)
|
||||
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
's',
|
||||
(
|
||||
pytest.param('README.md', id='standard file'),
|
||||
pytest.param('foo.aux', id='as ext'),
|
||||
pytest.param('com.dat', id='com without digit'),
|
||||
),
|
||||
)
|
||||
def test_check_illegal_windows_names_does_not_match(hook_re, s):
|
||||
assert hook_re.search(s) is None
|
Loading…
Reference in New Issue