Fixed regex matching
diff --git a/pre_commit_hooks/tests_should_end_in_test.py b/pre_commit_hooks/tests_should_end_in_test.py
index 5df6fd8..4bfc767 100644
--- a/pre_commit_hooks/tests_should_end_in_test.py
+++ b/pre_commit_hooks/tests_should_end_in_test.py
@@ -3,6 +3,7 @@
import argparse
import re
import sys
+from os.path import basename
def validate_files(argv=None):
@@ -15,14 +16,13 @@
args = parser.parse_args(argv)
retcode = 0
- test_name_pattern = '.*_test.py'
- if args.django:
- test_name_pattern = 'test.*.py'
+ test_name_pattern = 'test_.*.py' if args.django else '.*_test.py'
for filename in args.filenames:
+ base = basename(filename)
if (
- not re.match(test_name_pattern, filename) and
- not filename.endswith('__init__.py') and
- not filename.endswith('/conftest.py')
+ not re.match(test_name_pattern, base) and
+ not base == '__init__.py' and
+ not base == 'conftest.py'
):
retcode = 1
print(
diff --git a/tests/tests_should_end_in_test_test.py b/tests/tests_should_end_in_test_test.py
index ba27b19..a7aaf52 100644
--- a/tests/tests_should_end_in_test_test.py
+++ b/tests/tests_should_end_in_test_test.py
@@ -12,7 +12,7 @@
def test_validate_files_django_all_pass():
- ret = validate_files(['--django', 'test_foo.py', 'test_bar.py'])
+ ret = validate_files(['--django', 'test_foo.py', 'test_bar.py', 'tests/test_baz.py'])
assert ret == 0
@@ -21,6 +21,11 @@
assert ret == 1
+def test_validate_nested_files_django_one_fails():
+ ret = validate_files(['--django', 'tests/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