Skip to content

Commit 75cd5e0

Browse files
bites 116
1 parent cc46c7a commit 75cd5e0

File tree

3 files changed

+41
-0
lines changed

3 files changed

+41
-0
lines changed

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,3 +65,5 @@
6565
/146/README.md
6666
/140/README.md
6767
/140-pandas/README.md
68+
/118/README.md
69+
/116/README.md

116/files.py

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
import glob
2+
import os
3+
4+
ONE_KB = 1024
5+
6+
7+
def get_files(dirname, size_in_kb):
8+
"""Return files in dirname that are >= size_in_kb"""
9+
file_list = os.listdir(dirname)
10+
return sorted([file for file in file_list if os.path.getsize(file) >= size_in_kb])
11+
12+
13+
print(get_files(".", ONE_KB))

116/test_files.py

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
import os
2+
from tempfile import TemporaryDirectory
3+
4+
import pytest
5+
6+
from files import get_files
7+
8+
TMP = '/tmp'
9+
10+
11+
@pytest.mark.parametrize("byte_sizes, size_in_kb, expected", [
12+
([800, 1000, 1200], 1, ['1200']),
13+
([1024, 1025], 1, ['1024', '1025']),
14+
([1024, 1025], 1.026, []),
15+
([1000, 1300, 1777, 900], 1.25, ['1300', '1777']),
16+
([1024, 2047, 2048, 2500], 2, ['2048', '2500']),
17+
])
18+
def test_get_files(byte_sizes, size_in_kb, expected):
19+
with TemporaryDirectory(dir=TMP) as dirname:
20+
for size in byte_sizes:
21+
with open(os.path.join(dirname, str(size)), 'wb') as f:
22+
f.write(os.urandom(size))
23+
24+
actual = [os.path.basename(fi) for fi in
25+
get_files(dirname, size_in_kb)]
26+
assert sorted(actual) == sorted(expected)

0 commit comments

Comments
 (0)