Skip to content

Commit

Permalink
chore: add unit tests
Browse files Browse the repository at this point in the history
Signed-off-by: Leo Neto <[email protected]>
  • Loading branch information
oleoneto committed Feb 19, 2025
1 parent 3e46203 commit fd9d564
Showing 1 changed file with 71 additions and 8 deletions.
79 changes: 71 additions & 8 deletions tests/core/filesystem/test_directories.py
Original file line number Diff line number Diff line change
Expand Up @@ -29,19 +29,12 @@ def test_create_directory_with_files(self):
children=[
File(name="file1.txt"),
File(name="file2.md", template="# {{ name }}"),
Directory("folder"),
],
)

d.create(**{"name": "Bookstore"})

self.assertTrue(d.path().exists())
self.assertTrue(d.path().is_dir())

# Sub-directories
self.assertEqual(1, len(d.dirs))
self.assertEqual("folder", d.dirs[0].name)
self.assertTrue(d.dirs[0].path(d.path()).exists())
self.assertEqual(0, len(d.dirs))

# Files
self.assertEqual(2, len(d.files))
Expand All @@ -54,6 +47,76 @@ def test_create_directory_with_files(self):

self.assertEqual("# Bookstore\n", d.files[1].path(d.path()).read_text())

def test_create_directory_with_mixed_contents(self):
with runner.isolated_filesystem():
name = "project"

"""
project/
src/
main.py
utils/
__init__.py
"""
d = Directory(
name,
children=[
File(name="README.md", template="# {{ project_name }}"),
Directory(
"src",
children=[
File(name="main.py", template="def {{ func_name }}():\n\tpass"),
Directory("utils", children=[File(name="__init__.py", template="# {{ project_name }}.src.utils")])
],
),
],
)

d.create(**{"project_name": "click", "func_name": "main"})

self.assertTrue(d.path().exists())
self.assertTrue(d.path().is_dir())

# Files
self.assertEqual(1, len(d.files))
self.assertEqual("README.md", d.files[0].name)

### Sub-directories ###

# Dir: project/src/
source_dir = d.dirs[0].path(d.path())

self.assertEqual(1, len(d.dirs))
self.assertTrue(source_dir.exists())

self.assertEqual("src", d.dirs[0].name)
self.assertTrue(source_dir.is_dir())
self.assertEqual(1, len(d.dirs[0].dirs))
self.assertEqual(1, len(d.dirs[0].files))

# File: project/src/main.py
self.assertEqual("main.py", d.dirs[0].files[0].name)
self.assertTrue(d.dirs[0].files[0].path(source_dir).exists())
self.assertTrue(d.dirs[0].files[0].path(source_dir).is_file())
self.assertEqual("def main():\n\tpass\n", d.dirs[0].files[0].path(source_dir).read_text())

# Dir: project/src/utils/
utils_dir = d.dirs[0].dirs[0].path(source_dir)

self.assertEqual("utils", d.dirs[0].dirs[0].name)
self.assertEqual(1, len(d.dirs[0].dirs))
self.assertEqual(1, len(d.dirs[0].files))
self.assertTrue(d.dirs[0].dirs[0].path(source_dir).exists())
self.assertTrue(d.dirs[0].dirs[0].path(source_dir).is_dir())
self.assertTrue(d.dirs[0].files[0].path(source_dir).exists())
self.assertTrue(d.dirs[0].files[0].path(source_dir).is_file())

# File: project/src/utils/__init__.py
self.assertEqual("__init__.py", d.dirs[0].dirs[0].files[0].name)
self.assertTrue(d.dirs[0].dirs[0].files[0].path(utils_dir).exists())
self.assertTrue(d.dirs[0].dirs[0].files[0].path(utils_dir).is_file())
self.assertEqual("# click.src.utils\n", d.dirs[0].dirs[0].files[0].path(utils_dir).read_text())

def test_create_directory_with_template_files(self):
with runner.isolated_filesystem():
parent = "project"
Expand Down

0 comments on commit fd9d564

Please sign in to comment.