mirror of
https://github.com/pre-commit/pre-commit-hooks.git
synced 2026-04-08 12:34:17 +00:00
Merge pull request #46 from guykisel/django-test-hook
Add --django flag to test name checker
This commit is contained in:
commit
70a319aea3
2 changed files with 34 additions and 2 deletions
|
|
@ -1,23 +1,35 @@
|
||||||
from __future__ import print_function
|
from __future__ import print_function
|
||||||
|
|
||||||
import argparse
|
import argparse
|
||||||
|
import re
|
||||||
import sys
|
import sys
|
||||||
|
|
||||||
|
|
||||||
def validate_files(argv=None):
|
def validate_files(argv=None):
|
||||||
parser = argparse.ArgumentParser()
|
parser = argparse.ArgumentParser()
|
||||||
parser.add_argument('filenames', nargs='*')
|
parser.add_argument('filenames', nargs='*')
|
||||||
|
parser.add_argument(
|
||||||
|
'--django', default=False, action='store_true',
|
||||||
|
help='Use Django-style test naming pattern (test*.py)'
|
||||||
|
)
|
||||||
args = parser.parse_args(argv)
|
args = parser.parse_args(argv)
|
||||||
|
|
||||||
retcode = 0
|
retcode = 0
|
||||||
|
test_name_pattern = '.*_test.py'
|
||||||
|
if args.django:
|
||||||
|
test_name_pattern = 'test.*.py'
|
||||||
for filename in args.filenames:
|
for filename in args.filenames:
|
||||||
if (
|
if (
|
||||||
not filename.endswith('_test.py') and
|
not re.match(test_name_pattern, filename) and
|
||||||
not filename.endswith('__init__.py') and
|
not filename.endswith('__init__.py') and
|
||||||
not filename.endswith('/conftest.py')
|
not filename.endswith('/conftest.py')
|
||||||
):
|
):
|
||||||
retcode = 1
|
retcode = 1
|
||||||
print('{0} does not end in _test.py'.format(filename))
|
print(
|
||||||
|
'{0} does not match pattern "{1}"'.format(
|
||||||
|
filename, test_name_pattern
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
return retcode
|
return retcode
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -9,3 +9,23 @@ def test_validate_files_all_pass():
|
||||||
def test_validate_files_one_fails():
|
def test_validate_files_one_fails():
|
||||||
ret = validate_files(['not_test_ending.py', 'foo_test.py'])
|
ret = validate_files(['not_test_ending.py', 'foo_test.py'])
|
||||||
assert ret == 1
|
assert ret == 1
|
||||||
|
|
||||||
|
|
||||||
|
def test_validate_files_django_all_pass():
|
||||||
|
ret = validate_files(['--django', 'test_foo.py', 'test_bar.py'])
|
||||||
|
assert ret == 0
|
||||||
|
|
||||||
|
|
||||||
|
def test_validate_files_django_one_fails():
|
||||||
|
ret = validate_files(['--django', 'not_test_ending.py', 'test_foo.py'])
|
||||||
|
assert ret == 1
|
||||||
|
|
||||||
|
|
||||||
|
def test_validate_files_not_django_fails():
|
||||||
|
ret = validate_files(['foo_test.py', 'bar_test.py', 'test_baz.py'])
|
||||||
|
assert ret == 1
|
||||||
|
|
||||||
|
|
||||||
|
def test_validate_files_django_fails():
|
||||||
|
ret = validate_files(['--django', 'foo_test.py', 'test_bar.py', 'test_baz.py'])
|
||||||
|
assert ret == 1
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue