def test_discovery_plugin_find_files_multiple(): """Test that find_files will only walk the path once.""" dp = DiscoveryPlugin() package = Package("valid_package", os.path.join(os.path.dirname(__file__), "valid_package")) package._walked = True # pylint: disable=protected-access expected_dict = {} dp.find_files(package) assert package._walked # pylint: disable=protected-access assert package.files == expected_dict
def find_files(self, package: Package) -> None: """Walk the package path exactly once to discover files for analysis.""" if package._walked: # pylint: disable=protected-access return for root, _, files in os.walk(package.path): for fname in files: full_path = os.path.join(root, fname) abs_path = os.path.abspath(full_path) file_output = self.get_file_cmd_output(full_path) file_dict = { "name": fname.lower(), "path": abs_path, "file_cmd_out": file_output, } package.files[abs_path] = file_dict package._walked = True # pylint: disable=protected-access