def testGetDependencies(self): """Test that dependencies are calculated correctly.""" self.SetupWindowsMocks() artifact_registry.REGISTRY.ClearSources() try: test_artifacts_file = os.path.join( config_lib.CONFIG["Test.data_dir"], "artifacts", "test_artifacts.json") artifact_registry.REGISTRY.AddFileSource(test_artifacts_file) # No dependencies args = artifact.CollectArtifactDependenciesArgs( artifact_list=["DepsHomedir2"]) collect_obj = artifact.CollectArtifactDependencies( None, token=self.token) collect_obj.args = args collect_obj.knowledge_base = None collect_obj.state.Register("all_deps", set()) collect_obj.state.Register("awaiting_deps_artifacts", []) collect_obj.state.Register("knowledge_base", rdf_client.KnowledgeBase(os="Windows")) no_deps = collect_obj.GetFirstFlowsForCollection() self.assertItemsEqual(no_deps, []) self.assertItemsEqual(collect_obj.state.all_deps, []) self.assertItemsEqual(collect_obj.state.awaiting_deps_artifacts, []) # Dependency tree with a single starting point args = artifact.CollectArtifactDependenciesArgs( artifact_list=["DepsHomedir"]) collect_obj.args = args no_deps = collect_obj.GetFirstFlowsForCollection() self.assertItemsEqual(no_deps, ["DepsControlSet"]) self.assertItemsEqual( collect_obj.state.all_deps, ["environ_windir", "users.username", "current_control_set"]) self.assertItemsEqual(collect_obj.state.awaiting_deps_artifacts, ["DepsWindir", "DepsWindirRegex"]) finally: artifact.ArtifactLoader().RunOnce()
def testGetDependencies(self): """Test that dependencies are calculated correctly.""" self.SetupWindowsMocks() with utils.Stubber(artifact_lib.ArtifactRegistry, "artifacts", {}): test_artifacts_file = os.path.join( config_lib.CONFIG["Test.data_dir"], "test_artifacts.json") artifact_lib.LoadArtifactsFromFiles([test_artifacts_file]) # No dependencies args = artifact.CollectArtifactDependenciesArgs( artifact_list=["DepsHomedir2"]) collect_obj = artifact.CollectArtifactDependencies( None, token=self.token) collect_obj.args = args collect_obj.knowledge_base = None collect_obj.state.Register("all_deps", set()) collect_obj.state.Register("awaiting_deps_artifacts", []) collect_obj.state.Register("knowledge_base", rdfvalue.KnowledgeBase(os="Windows")) no_deps = collect_obj.GetFirstFlowsForCollection() self.assertItemsEqual(no_deps, []) self.assertItemsEqual(collect_obj.state.all_deps, []) self.assertItemsEqual(collect_obj.state.awaiting_deps_artifacts, []) # Dependency tree with a single starting point args = artifact.CollectArtifactDependenciesArgs( artifact_list=["DepsHomedir"]) collect_obj.args = args no_deps = collect_obj.GetFirstFlowsForCollection() self.assertItemsEqual(no_deps, ["DepsControlSet"]) self.assertItemsEqual( collect_obj.state.all_deps, ["environ_windir", "users.username", "current_control_set"]) self.assertItemsEqual(collect_obj.state.awaiting_deps_artifacts, ["DepsWindir", "DepsWindirRegex"])