From 58edfc8af6ded94d89888f6dbe17d2a5f645ec88 Mon Sep 17 00:00:00 2001 From: phoxelua Date: Thu, 19 Nov 2015 00:18:38 -0800 Subject: [PATCH] Fixed regex matching --- pre_commit_hooks/tests_should_end_in_test.py | 12 ++++++------ tests/tests_should_end_in_test_test.py | 7 ++++++- 2 files changed, 12 insertions(+), 7 deletions(-) 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 @@ from __future__ import print_function import argparse import re import sys +from os.path import basename def validate_files(argv=None): @@ -15,14 +16,13 @@ def validate_files(argv=None): 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_one_fails(): 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 @@ def test_validate_files_django_one_fails(): 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