Merge pull request #46 from guykisel/django-test-hook

Add --django flag to test name checker
This commit is contained in:
Anthony Sottile 2015-03-11 20:28:49 -06:00
commit 70a319aea3
2 changed files with 34 additions and 2 deletions

View file

@ -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

View file

@ -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