From fd9d564bd4aabf2cf91806ec648e45d92b23976e Mon Sep 17 00:00:00 2001 From: Leo Neto Date: Wed, 19 Feb 2025 13:43:42 -0300 Subject: [PATCH] chore: add unit tests Signed-off-by: Leo Neto --- tests/core/filesystem/test_directories.py | 79 ++++++++++++++++++++--- 1 file changed, 71 insertions(+), 8 deletions(-) diff --git a/tests/core/filesystem/test_directories.py b/tests/core/filesystem/test_directories.py index 0bfeb73..1fb1a6b 100644 --- a/tests/core/filesystem/test_directories.py +++ b/tests/core/filesystem/test_directories.py @@ -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)) @@ -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"