def test_collect_playbooks_dependencies_on_incident_fields(self, id_set): expected_result = {("DigitalGuardian", True), ("EmployeeOffboarding", True)} test_input = [ { "Dummy Playbook": { "name": "Dummy Playbook", "file_path": "dummy_path", "fromversion": "dummy_version", "implementing_scripts": [ ], "implementing_playbooks": [ ], "command_to_integration": { }, "tests": [ "dummy_playbook" ], "pack": "dummy_pack", "incident_fields": [ "digitalguardianusername", "Google Display Name" ] } } ] found_result = PackDependencies._collect_playbooks_dependencies(pack_playbooks=test_input, id_set=id_set) assert IsEqualFunctions.is_sets_equal(found_result, expected_result)
def test_collect_detection_of_optional_dependencies_in_playbooks(self, integration_command, id_set): test_input = [ { "Dummy Playbook": { "name": "Dummy Playbook", "file_path": "dummy_path", "fromversion": "dummy_version", "implementing_scripts": [ ], "implementing_playbooks": [ ], "command_to_integration": { integration_command: "" }, "tests": [ "dummy_playbook" ], "pack": "dummy_pack" } } ] found_result_set = PackDependencies._collect_playbooks_dependencies(pack_playbooks=test_input, id_set=id_set) assert len(found_result_set) > 0 for found_result in found_result_set: assert not found_result[1] # validate that mandatory is set to False
def test_collect_playbooks_dependencies_on_integrations_with_brand(self, id_set): command = "ip" pack_name = "ipinfo" test_input = [ { "Dummy Playbook": { "name": "Dummy Playbook", "file_path": "dummy_path", "fromversion": "dummy_version", "implementing_scripts": [ ], "implementing_playbooks": [ ], "command_to_integration": { command: pack_name }, "tests": [ "dummy_playbook" ], "pack": "dummy_pack" } } ] found_result_set = PackDependencies._collect_playbooks_dependencies(pack_playbooks=test_input, id_set=id_set) assert len(found_result_set) == 1 found_result = found_result_set.pop() assert found_result[0] == pack_name assert found_result[1]
def test_collect_playbooks_dependencies_on_integrations(self, integration_command, expected_result, id_set): test_input = [ { "Dummy Playbook": { "name": "Dummy Playbook", "file_path": "dummy_path", "fromversion": "dummy_version", "implementing_scripts": [ ], "implementing_playbooks": [ ], "command_to_integration": { integration_command: "" }, "tests": [ "dummy_playbook" ], "pack": "dummy_pack" } } ] found_result = PackDependencies._collect_playbooks_dependencies(pack_playbooks=test_input, id_set=id_set) assert IsEqualFunctions.is_sets_equal(found_result, expected_result)
def test_collect_playbooks_dependencies_on_playbook(self, dependency_playbook, expected_result, id_set): test_input = [ { "Dummy Playbook": { "name": "Dummy Playbook", "file_path": "dummy_path", "fromversion": "dummy_version", "implementing_scripts": [ ], "implementing_playbooks": [ dependency_playbook ], "command_to_integration": { }, "tests": [ "dummy_playbook" ], "pack": "dummy_pack" } } ] found_result = PackDependencies._collect_playbooks_dependencies(pack_playbooks=test_input, id_set=id_set) assert found_result == expected_result
def test_collect_playbooks_dependencies_skip_unavailable(self, id_set): """ Given - A playbook entry in the id_set. - When - Building dependency graph for pack. Then - Extracting the packs that the playbook depends on. """ expected_result = { # playbooks: ('Slack', False), ('Indeni', True), # integrations: ('FeedAlienVault', False), ('ipinfo', True), ('FeedAutofocus', True), # scripts: ('GetServerURL', False), ('HelloWorld', True), } test_input = [ { 'Dummy Playbook': { 'name': 'Dummy Playbook', 'file_path': 'dummy_path', 'fromversion': 'dummy_version', 'implementing_scripts': [ 'GetServerURL', 'HelloWorldScript', ], 'implementing_playbooks': [ 'Failed Login Playbook - Slack v2', 'Indeni Demo', ], 'command_to_integration': { 'alienvault-get-indicators': '', 'ip': 'ipinfo', 'autofocus-get-indicators': '', }, 'tests': ['dummy_playbook'], 'pack': 'dummy_pack', 'incident_fields': [], 'skippable_tasks': [ 'Print', 'Failed Login Playbook - Slack v2', 'alienvault-get-indicators', 'GetServerURL', ] } }, ] found_result = PackDependencies._collect_playbooks_dependencies( pack_playbooks=test_input, id_set=id_set, verbose_file=VerboseFile(), ) assert IsEqualFunctions.is_sets_equal(found_result, expected_result)