FIX: --check-hidden respects directories
diff --git a/codespell_lib/_codespell.py b/codespell_lib/_codespell.py index e7b72b7..10febb6 100755 --- a/codespell_lib/_codespell.py +++ b/codespell_lib/_codespell.py
@@ -304,8 +304,8 @@ parser.add_argument('-H', '--check-hidden', action='store_true', default=False, - help='check hidden files (those starting with ".") as ' - 'well') + help='Check hidden files and directories (those ' + 'starting with ".") as well.') parser.add_argument('-A', '--after-context', type=int, metavar='LINES', help='print LINES of trailing context') parser.add_argument('-B', '--before-context', type=int, metavar='LINES', @@ -715,6 +715,8 @@ if glob_match.match(root): # skip (absolute) directories del dirs[:] continue + if is_hidden(root, options.check_hidden): + continue for file_ in files: # ignore hidden files in directories if is_hidden(file_, options.check_hidden):
diff --git a/codespell_lib/tests/test_basic.py b/codespell_lib/tests/test_basic.py index 47cf94a..e977059 100644 --- a/codespell_lib/tests/test_basic.py +++ b/codespell_lib/tests/test_basic.py
@@ -5,6 +5,7 @@ import contextlib import os import os.path as op +from shutil import copyfile import subprocess import sys @@ -321,6 +322,15 @@ assert cs.main('--check-hidden', '--check-filenames', op.join(d, '.abandonned.txt')) == 2 assert cs.main('--check-hidden', '--check-filenames', d) == 2 + # hidden directory + assert cs.main('--check-hidden', d) == 1 + assert cs.main('--check-hidden', '--check-filenames', d) == 2 + os.mkdir(op.join(d, '.test')) + copyfile(op.join(d, '.abandonned.txt'), + op.join(d, '.test', 'abandonned.txt')) + assert cs.main(d) == 0 + assert cs.main('--check-hidden', d) == 2 + assert cs.main('--check-hidden', '--check-filenames', d) == 4 def test_case_handling(tmpdir, capsys):