/
test_FileFinder.py
51 lines (40 loc) · 1.8 KB
/
test_FileFinder.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
import logging
import os
import pytest
import shutil
from DirectoryWalker import DirectoryWalker
from FileFinder import FileFinder
@pytest.fixture(autouse=True, scope="class")
def setup(request):
logging.disable(logging.CRITICAL)
def teardown():
test_dir = "test"
if os.path.isdir(test_dir):
shutil.rmtree(test_dir)
request.addfinalizer(teardown)
class TestVFileFinder(object):
vid_ext = ["avi", "wmv", "mp4", "mkv"]
def test_video_finder_asked_to_search_nonexistent_dir(self, monkeypatch):
monkeypatch.setattr(os.path, 'isdir', lambda x: False)
with pytest.raises(NotADirectoryError):
FileFinder().find_all_files_in_directory("fake_directory")
def test_video_finder_finds_right_files(self, monkeypatch):
def mock_directory(walk_directory):
yield('/Users/admin/downloads', [], [])
yield('/Users/admin/downloads/fooDir', [],
['bar.txt', 'fooBar.avi'])
yield('/Users/admin/downloads/binDir', [],
['boo.wmv', 'big.txt'])
yield('/Users/admin/downloads/tooDir', [],
['Big.mp4', 'another.txt'])
yield('/Users/admin/downloads/somDir', [],
['som.mkv', 'som.txt', 'som.srt'])
yield('/Users/admin/downloads/pinDir', ['Sample'],
['pin1.mkv', 'pin1.mkv', 'pin1.mkv',
'pin1.mkv', 'pin1.mkv', 'pin1.mkv',
'pin1.mkv', 'pin1.mkv',])
monkeypatch.setattr(os.path, 'isdir', lambda x: True)
monkeypatch.setattr(DirectoryWalker, 'walk_directory', mock_directory)
video_finder = FileFinder().find_all_files_in_directory("directory")
video_files = video_finder.get_files_of_specific_types(self.vid_ext)
assert len(video_files) == 12