Skip to content

Commit 0e5d103

Browse files
committed
Add test case for get_nested_directories
1 parent d5a7bc3 commit 0e5d103

File tree

1 file changed

+53
-0
lines changed

1 file changed

+53
-0
lines changed

tests/file_system_test.py

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
"""Tests for the file_system functions."""
2+
import unittest
3+
from pathlib import WindowsPath
4+
from unittest.mock import Mock
5+
6+
import library.helpers.file_system as file_system
7+
8+
9+
class TestFileSystemHelpers(unittest.TestCase):
10+
def test_get_nested_directories(self):
11+
"""Test get_nested_directories."""
12+
start_menu_directory = Mock(WindowsPath)
13+
start_menu_directory.__repr__ = Mock(return_value="Start Menu")
14+
programs_directory = Mock(WindowsPath)
15+
programs_directory.__repr__ = Mock(return_value="Programs")
16+
test_directory_one = Mock(WindowsPath)
17+
test_directory_one.__repr__ = Mock(return_value="Test Directory One")
18+
nested_test_directory_one = Mock(WindowsPath)
19+
nested_test_directory_one.__repr__ = Mock(return_value="Nested Test Directory One")
20+
nested_test_directory_two = Mock(WindowsPath)
21+
nested_test_directory_two.__repr__ = Mock(return_value="Nested Test Directory Two")
22+
23+
start_menu_directory.iterdir = Mock(
24+
return_value=[programs_directory]
25+
)
26+
start_menu_directory.is_dir = Mock(return_value=True)
27+
programs_directory.iterdir = Mock(
28+
return_value=[test_directory_one]
29+
)
30+
programs_directory.is_dir = Mock(return_value=True)
31+
test_directory_one.iterdir = Mock(
32+
return_value=[nested_test_directory_one, nested_test_directory_two]
33+
)
34+
test_directory_one.is_dir = Mock(return_value=True)
35+
nested_test_directory_one.iterdir = Mock(return_value=[])
36+
nested_test_directory_one.is_dir = Mock(return_value=True)
37+
nested_test_directory_two.iterdir = Mock(return_value=[])
38+
nested_test_directory_two.is_dir = Mock(return_value=True)
39+
40+
nested_directories = file_system.get_nested_directories(start_menu_directory)
41+
self.assertListEqual(
42+
nested_directories,
43+
[
44+
programs_directory,
45+
test_directory_one,
46+
nested_test_directory_one,
47+
nested_test_directory_two,
48+
],
49+
)
50+
51+
52+
if __name__ == "__main__":
53+
unittest.main()

0 commit comments

Comments
 (0)