mirror of
https://github.com/pre-commit/pre-commit-hooks.git
synced 2026-03-29 10:16:52 +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
|
||||
|
||||
import argparse
|
||||
import re
|
||||
import sys
|
||||
|
||||
|
||||
def validate_files(argv=None):
|
||||
parser = argparse.ArgumentParser()
|
||||
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)
|
||||
|
||||
retcode = 0
|
||||
test_name_pattern = '.*_test.py'
|
||||
if args.django:
|
||||
test_name_pattern = 'test.*.py'
|
||||
for filename in args.filenames:
|
||||
if (
|
||||
not filename.endswith('_test.py') and
|
||||
not re.match(test_name_pattern, filename) and
|
||||
not filename.endswith('__init__.py') and
|
||||
not filename.endswith('/conftest.py')
|
||||
):
|
||||
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
|
||||
|
||||
|
|
|
|||
|
|
@ -9,3 +9,23 @@ def test_validate_files_all_pass():
|
|||
def test_validate_files_one_fails():
|
||||
ret = validate_files(['not_test_ending.py', 'foo_test.py'])
|
||||
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