Skip to content

Commit 44046e8

Browse files
committed
Closes #3
1 parent 4cacd7a commit 44046e8

9 files changed

+63
-6
lines changed

dirwalker.py

+16-4
Original file line numberDiff line numberDiff line change
@@ -24,24 +24,36 @@
2424

2525

2626
def find_filenames_with_extensions(
27-
search_directory, extensions):
27+
search_directory, extensions, recurse=True):
2828
"""Find filenames with given extensions.
2929
3030
Args:
3131
search_directory: A string of the absolute or relative directory to
3232
search.
3333
extensions: A list or tuple of strings containing the extensions to
3434
look for.
35+
recurse: A boolean indicating whether or not to recurse any
36+
subdirectories.
3537
3638
Returns:
3739
A list of filenames found.
3840
"""
3941
files_found = []
4042
search_directory = os.path.abspath(search_directory)
41-
for root, dirs, files in os.walk(search_directory):
42-
for filename in files:
43-
current_file = os.path.join(root, filename)
43+
print(search_directory)
44+
if recurse:
45+
for root, dirs, files in os.walk(search_directory):
46+
for filename in files:
47+
current_file = os.path.join(root, filename)
48+
for extension in extensions:
49+
if filename.endswith(extension):
50+
files_found.append(current_file)
51+
else:
52+
for filename in os.listdir(search_directory):
4453
for extension in extensions:
4554
if filename.endswith(extension):
55+
current_file = os.path.join(search_directory,
56+
filename)
4657
files_found.append(current_file)
58+
4759
return files_found

setup.cfg

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,4 @@
22
description-file = README.md
33
[flake8]
44
max-line-length = 79
5-
max-complexity = 10
5+
max-complexity = 12

tasks.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ def release(start=False, finish=False, deploy=False, test=False, version=''):
3131
if deploy:
3232
if version:
3333
run("python setup.py sdist")
34-
run("git flow release finish v{ver}".format(
34+
run("git flow release finish -m '{ver}' v{ver}".format(
3535
ver=version), echo=True)
3636
run("git push --tags")
3737
run("git checkout master")

tests/test_dirwalker.py

+45
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,30 @@ def setUp(self):
3434
self.known_sample_file_06_js = os.path.join(
3535
self.sample_dir,
3636
'sample_file_06.js')
37+
self.known_sample_level_2_file_01_txt = os.path.join(
38+
self.sample_dir,
39+
'sample_dir_level_2',
40+
'sample_level_2_file_01.txt')
41+
self.known_sample_level_2_file_01_txt = os.path.join(
42+
self.sample_dir,
43+
'sample_dir_level_2',
44+
'sample_level_2_file_01.txt')
45+
self.known_sample_level_2_file_02_txt = os.path.join(
46+
self.sample_dir,
47+
'sample_dir_level_2',
48+
'sample_level_2_file_02.txt')
49+
self.known_sample_level_2_file_03_csv = os.path.join(
50+
self.sample_dir,
51+
'sample_dir_level_2',
52+
'sample_level_2_file_03.csv')
53+
self.known_sample_level_2_file_04_csv = os.path.join(
54+
self.sample_dir,
55+
'sample_dir_level_2',
56+
'sample_level_2_file_04.csv')
57+
self.known_sample_level_2_file_05_py = os.path.join(
58+
self.sample_dir,
59+
'sample_dir_level_2',
60+
'sample_level_2_file_05.py')
3761

3862
def test_find_single_file_without_extension_period(self):
3963
"""Find extensions that don't have a period"""
@@ -43,6 +67,27 @@ def test_find_single_file_without_extension_period(self):
4367
['js']),
4468
[self.known_sample_file_06_js])
4569

70+
def test_find_multiple_files_without_extension_period(self):
71+
"""Find extensions in recursive directories"""
72+
self.assertEqual(
73+
dirwalker.find_filenames_with_extensions(
74+
self.sample_dir,
75+
['txt']),
76+
[self.known_sample_file_01_txt,
77+
self.known_sample_file_02_txt,
78+
self.known_sample_level_2_file_01_txt,
79+
self.known_sample_level_2_file_02_txt])
80+
81+
def test_find_multiple_files_without_recursion(self):
82+
"""Find extensions without recursing subdirectories"""
83+
self.assertEqual(
84+
dirwalker.find_filenames_with_extensions(
85+
self.sample_dir,
86+
['txt'],
87+
recurse=False),
88+
[self.known_sample_file_01_txt,
89+
self.known_sample_file_02_txt])
90+
4691
def test_find_single_file_with_extension_period(self):
4792
"""Find extensions that have a period"""
4893
self.assertEqual(

0 commit comments

Comments
 (0)