示例#1
0
    def test_build_exclude_file(self, mocker):
        child1 = MagicMock(spec=Path, **{"is_dir.return_value": False})
        child2 = MagicMock(spec=Path, **{"is_dir.return_value": False})
        child3 = MagicMock(spec=Path, **{"is_dir.return_value": False})
        project_path = MagicMock(
            spec=Path, **{"iterdir.return_value": [child1, child2, child3]})
        file1 = MagicMock(spec=File)
        file2 = MagicMock(spec=File)
        file_factory_mock = mocker.patch.object(File,
                                                "file_factory",
                                                side_effect=[file1, file2])
        configuration = MagicMock(spec=Configuration)
        mocker.patch.object(ConfigurationManager,
                            "get",
                            return_value=configuration)
        process_file_mock = mocker.patch.object(
            ProjectFileListBuilder,
            "process_file",
            side_effect=[True, False, True])

        result = ProjectFileListBuilder().build(project_path)

        assert len(result) == 2
        assert file1 in result
        assert file2 in result
        assert file_factory_mock.call_args_list == [call(child1), call(child3)]
        assert process_file_mock.call_args_list == [
            call(child1, configuration),
            call(child2, configuration),
            call(child3, configuration),
        ]
示例#2
0
 def test_include_hidden_file_when_turned_off(self):
     configuration = MagicMock(
         spec=Configuration,
         filenames_to_skip=["skip.this"],
         skip_hidden_files=False,
         extensions_to_skip=[".skip"],
         skip_hidden_folders=False,
     )
     file = MagicMock(spec=Path)
     file.name = ".this"
     file.suffix = ".this"
     assert ProjectFileListBuilder().process_file(file, configuration)
示例#3
0
 def test_exclude_file_because_of_extension(self):
     configuration = MagicMock(
         spec=Configuration,
         filenames_to_skip=["skip.this"],
         skip_hidden_files=True,
         extensions_to_skip=[".skip"],
         skip_hidden_folders=False,
     )
     file = MagicMock(spec=Path)
     file.name = "file.skip"
     file.suffix = ".skip"
     assert ProjectFileListBuilder().process_file(file,
                                                  configuration) is False
示例#4
0
 def test_exclude_folder_when_hidden(self):
     configuration = MagicMock(
         spec=Configuration,
         filenames_to_skip=["skip.this"],
         skip_hidden_files=False,
         skip_hidden_folders=True,
         extensions_to_skip=[".skip"],
     )
     file = MagicMock(spec=Path)
     file.name = ".this"
     file.suffix = ".this"
     file.is_dir.return_value = True
     assert ProjectFileListBuilder().process_file(file,
                                                  configuration) is False
    def get_projects_in_folder(self, folder: str) -> List[Project]:
        if not Path(folder).exists():
            return []

        project_list: List[Project] = []
        for project in Path(folder).iterdir():
            if not project.is_dir():
                continue
            if self.is_folder_project(project):
                project_path = str(project)
                project_list.append(
                    Project(
                        project_path=project_path,
                        file_list=ProjectFileListBuilder().build(project),
                    )
                )
            else:
                project_list.extend(self.get_projects_in_folder(str(project)))
        return project_list