def test_changed_runnable_test_non_mocked_get_modified_files(self): (files_list, tests_list, all_tests, is_conf_json, sample_tests, modified_metadata_list, is_reputations_json, is_indicator_json) = get_modified_files_for_testing(self.GIT_DIFF_RET) assert len(sample_tests) == 0 assert 'Packs/Active_Directory_Query/Integrations/' \ 'Active_Directory_Query/Active_Directory_Query.yml' in files_list
def test_renamed_file(self, mocker): diff_line = ( "R100 Packs/HelloWorld/Integrations/HelloWorld/HelloWorld.yml " "Packs/NewHelloWorld/Integrations/HelloWorld/NewHelloWorld.yml") mock_get_dict_from_yaml(mocker, {"category": "c"}, "yml") ( modified_files_list, modified_tests_list, changed_common, is_conf_json, sample_tests, modified_metadata_list, is_reputations_json, is_indicator_json, ) = get_modified_files_for_testing(diff_line) assert modified_files_list == [ "Packs/NewHelloWorld/Integrations/HelloWorld/NewHelloWorld.yml" ] assert modified_tests_list == [] assert changed_common == [] assert is_conf_json is False assert sample_tests == [] assert modified_metadata_list == set() assert is_reputations_json is False assert is_indicator_json is False
def test_name_not_same_as_folder(self, mocker): """ Given: - A python file that the file name is not the same as the dir name (Helloworld/NewHelloWorld.py) When: - Collecting tests Then: - Validate the yml file is in modified file list and not in any other list """ diff_line = "M Packs/HelloWorld/Integrations/HelloWorld/NewHelloWorld.py" yml_file = "Packs/HelloWorld/Integrations/HelloWorld/NewHelloWorld.yml" mocker.patch( "Tests.scripts.utils.get_modified_files_for_testing.glob.glob", return_value=[yml_file], ) mock_get_dict_from_yaml(mocker, {"category": "cat"}, "yml") modified_files_instance = get_modified_files_for_testing(diff_line) assert modified_files_instance.modified_files == [yml_file] assert modified_files_instance.modified_tests == [] assert modified_files_instance.changed_common_files == [] assert modified_files_instance.is_conf_json is False assert modified_files_instance.sample_tests == [] assert modified_files_instance.modified_metadata == set() assert modified_files_instance.is_reputations_json is False assert modified_files_instance.is_indicator_json is False assert modified_files_instance.is_landing_page_sections_json is False
def test_sample(self, file_path): """ Given: - A python file outside of a pack When: - Collecting tests Then: - Validate the python file is in sample tests list and not in any other list """ diff_line = "M Tests/Util/Scripts/new_script.py" py_file = "Tests/Util/Scripts/new_script.py" modified_files_instance = get_modified_files_for_testing(diff_line) assert modified_files_instance.modified_files == [] assert modified_files_instance.modified_tests == [] assert modified_files_instance.changed_common_files == [] assert modified_files_instance.is_conf_json is False assert modified_files_instance.sample_tests == [py_file] assert modified_files_instance.modified_metadata == set() assert modified_files_instance.is_reputations_json is False assert modified_files_instance.is_indicator_json is False assert modified_files_instance.is_landing_page_sections_json is False
def test_python_file(self, mocker): diff_line = "M Packs/HelloWorld/Integrations/HelloWorld/HelloWorld.py" yml_file = "Packs/HelloWorld/Integrations/HelloWorld/HelloWorld.yml" mocker.patch( "Tests.scripts.utils.get_modified_files_for_testing.glob.glob", return_value=[yml_file], ) mock_get_dict_from_yaml(mocker, {"category": "cat"}, "yml") ( modified_files_list, modified_tests_list, changed_common, is_conf_json, sample_tests, modified_metadata_list, is_reputations_json, is_indicator_json, ) = get_modified_files_for_testing(diff_line) assert modified_files_list == [yml_file] assert modified_tests_list == [] assert changed_common == [] assert is_conf_json is False assert sample_tests == [] assert modified_metadata_list == set() assert is_reputations_json is False assert is_indicator_json is False
def test_common_py_file(self, mocker): diff_line = "M Packs/Base/Scripts/CommonServerPython/CommonServerPython.py" mocker.patch( "Tests.scripts.utils.get_modified_files_for_testing.glob.glob", return_value=[ "Packs/Base/Scripts/CommonServerPython/CommonServerPython.yml" ], ) mock_get_dict_from_yaml(mocker, {"script": "cat"}, "yml") ( modified_files_list, modified_tests_list, changed_common, is_conf_json, sample_tests, modified_metadata_list, is_reputations_json, is_indicator_json, ) = get_modified_files_for_testing(diff_line) assert modified_files_list == [] assert modified_tests_list == [] assert changed_common == [ "Packs/Base/Scripts/CommonServerPython/CommonServerPython.yml" ] assert is_conf_json is False assert sample_tests == [] assert modified_metadata_list == set() assert is_reputations_json is False assert is_indicator_json is False
def test_no_file_path(self): diff_line = "" modified_files_instance = get_modified_files_for_testing(diff_line) assert modified_files_instance.modified_files == [] assert modified_files_instance.modified_tests == [] assert modified_files_instance.changed_common_files == [] assert modified_files_instance.is_conf_json is False assert modified_files_instance.sample_tests == [] assert modified_files_instance.modified_metadata == set() assert modified_files_instance.is_reputations_json is False assert modified_files_instance.is_indicator_json is False assert modified_files_instance.is_landing_page_sections_json is False
def test_non_relevant_file(self): diff_line = "A Packs/HelloWorld/Integrations/HelloWorld/cert.pem" modified_files_instance = get_modified_files_for_testing(diff_line) assert modified_files_instance.modified_files == [] assert modified_files_instance.modified_tests == [] assert modified_files_instance.changed_common_files == [] assert modified_files_instance.is_conf_json is False assert modified_files_instance.sample_tests == [] assert modified_files_instance.modified_metadata == set() assert modified_files_instance.is_reputations_json is False assert modified_files_instance.is_indicator_json is False assert modified_files_instance.is_landing_page_sections_json is False
def test_metadata(self, mocker): diff_line = "M Packs/HelloWorld/pack_metadata.json" mock_get_dict_from_yaml(mocker, {}, "json") modified_files_instance = get_modified_files_for_testing(diff_line) assert modified_files_instance.modified_files == [] assert modified_files_instance.modified_tests == [] assert modified_files_instance.changed_common_files == [] assert modified_files_instance.is_conf_json is False assert modified_files_instance.sample_tests == [] assert modified_files_instance.modified_metadata == {"HelloWorld"} assert modified_files_instance.is_reputations_json is False assert modified_files_instance.is_indicator_json is False assert modified_files_instance.is_landing_page_sections_json is False
def test_secrets_whitelist(self, mocker): mock_get_dict_from_yaml(mocker, {"files": []}, "json") diff_line = "M Tests/secrets_white_list.json" modified_files_instance = get_modified_files_for_testing(diff_line) assert modified_files_instance.modified_files == [] assert modified_files_instance.modified_tests == [] assert modified_files_instance.changed_common_files == [] assert modified_files_instance.is_conf_json is False assert modified_files_instance.sample_tests == [] assert modified_files_instance.modified_metadata == set() assert modified_files_instance.is_reputations_json is False assert modified_files_instance.is_indicator_json is False assert modified_files_instance.is_landing_page_sections_json is False
def test_reputations_list(self, path: str, mocker): diff_line = f"M {path}" mock_get_dict_from_yaml(mocker, {"regex": "bla"}, "json") modified_files_instance = get_modified_files_for_testing(diff_line) assert modified_files_instance.modified_files == [] assert modified_files_instance.modified_tests == [] assert modified_files_instance.changed_common_files == [] assert modified_files_instance.is_conf_json is False assert modified_files_instance.sample_tests == [] assert modified_files_instance.modified_metadata == set() assert modified_files_instance.is_reputations_json is True assert modified_files_instance.is_indicator_json is False assert modified_files_instance.is_landing_page_sections_json is False
def test_common_yml_file(self, mocker): diff_line = "M scripts/script-CommonIntegration.yml" mock_get_dict_from_yaml(mocker, {"script": "cat"}, "yml") modified_files_instance = get_modified_files_for_testing(diff_line) assert modified_files_instance.modified_files == [] assert modified_files_instance.modified_tests == [] assert modified_files_instance.changed_common_files == [ "scripts/script-CommonIntegration.yml" ] assert modified_files_instance.is_conf_json is False assert modified_files_instance.sample_tests == [] assert modified_files_instance.modified_metadata == set() assert modified_files_instance.is_reputations_json is False assert modified_files_instance.is_indicator_json is False assert modified_files_instance.is_landing_page_sections_json is False
def test_indicator_fields(self, mocker): diff_line = "M Packs/HelloWorld/IndicatorFields/sample-field.json" mock_get_dict_from_yaml(mocker, {"id": "indicator-sample-field"}, "json") modified_files_instance = get_modified_files_for_testing(diff_line) assert modified_files_instance.modified_files == [] assert modified_files_instance.modified_tests == [] assert modified_files_instance.changed_common_files == [] assert modified_files_instance.is_conf_json is False assert modified_files_instance.sample_tests == [] assert modified_files_instance.modified_metadata == set() assert modified_files_instance.is_reputations_json is False assert modified_files_instance.is_indicator_json is True assert modified_files_instance.is_landing_page_sections_json is False
def test_yaml_file(self, mocker): diff_line = "M Packs/HelloWorld/Integrations/HelloWorld/HelloWorld.yml" mock_get_dict_from_yaml(mocker, {"category": "c"}, "yml") modified_files_instance = get_modified_files_for_testing(diff_line) assert modified_files_instance.modified_files == [ "Packs/HelloWorld/Integrations/HelloWorld/HelloWorld.yml" ] assert modified_files_instance.modified_tests == [] assert modified_files_instance.changed_common_files == [] assert modified_files_instance.is_conf_json is False assert modified_files_instance.sample_tests == [] assert modified_files_instance.modified_metadata == set() assert modified_files_instance.is_reputations_json is False assert modified_files_instance.is_indicator_json is False assert modified_files_instance.is_landing_page_sections_json is False
def test_docs(self): diff_line = "A Packs/HelloWorld/README.md" ( modified_files_list, modified_tests_list, changed_common, is_conf_json, sample_tests, modified_metadata_list, is_reputations_json, is_indicator_json, ) = get_modified_files_for_testing(diff_line) assert modified_files_list == [] assert modified_tests_list == [] assert changed_common == [] assert is_conf_json is False assert sample_tests == [] assert modified_metadata_list == set() assert is_reputations_json is False assert is_indicator_json is False
def test_non_relevant_file(self): diff_line = "A Packs/HelloWorld/Integrations/HelloWorld/cert.pem" ( modified_files_list, modified_tests_list, changed_common, is_conf_json, sample_tests, modified_metadata_list, is_reputations_json, is_indicator_json, ) = get_modified_files_for_testing(diff_line) assert modified_files_list == [] assert modified_tests_list == [] assert changed_common == [] assert is_conf_json is False assert sample_tests == [] assert modified_metadata_list == set() assert is_reputations_json is False assert is_indicator_json is False
def test_no_file_path(self): diff_line = "" ( modified_files_list, modified_tests_list, changed_common, is_conf_json, sample_tests, modified_metadata_list, is_reputations_json, is_indicator_json, ) = get_modified_files_for_testing(diff_line) assert modified_files_list == [] assert modified_tests_list == [] assert changed_common == [] assert is_conf_json is False assert sample_tests == [] assert modified_metadata_list == set() assert is_reputations_json is False assert is_indicator_json is False
def test_conf(self, mocker): diff_line = "M Tests/conf.json" mock_get_dict_from_yaml(mocker, {}, "json") ( modified_files_list, modified_tests_list, changed_common, is_conf_json, sample_tests, modified_metadata_list, is_reputations_json, is_indicator_json, ) = get_modified_files_for_testing(diff_line) assert modified_files_list == [] assert modified_tests_list == [] assert changed_common == [] assert is_conf_json is True assert sample_tests == [] assert modified_metadata_list == set() assert is_reputations_json is False assert is_indicator_json is False
def test_reputations_list(self, path: str, mocker): diff_line = f"M {path}" mock_get_dict_from_yaml(mocker, {"regex": "bla"}, "json") ( modified_files_list, modified_tests_list, changed_common, is_conf_json, sample_tests, modified_metadata_list, is_reputations_json, is_indicator_json, ) = get_modified_files_for_testing(diff_line) assert modified_files_list == [] assert modified_tests_list == [] assert changed_common == [] assert is_conf_json is False assert sample_tests == [] assert modified_metadata_list == set() assert is_reputations_json is True assert is_indicator_json is False
def test_metadata(self, mocker): diff_line = "M Packs/HelloWorld/pack_metadata.json" mock_get_dict_from_yaml(mocker, {}, "json") ( modified_files_list, modified_tests_list, changed_common, is_conf_json, sample_tests, modified_metadata_list, is_reputations_json, is_indicator_json, ) = get_modified_files_for_testing(diff_line) assert modified_files_list == [] assert modified_tests_list == [] assert changed_common == [] assert is_conf_json is False assert sample_tests == [] assert modified_metadata_list == {"HelloWorld"} assert is_reputations_json is False assert is_indicator_json is False
def test_secrets_whitelist(self, mocker): mock_get_dict_from_yaml(mocker, {"files": []}, "json") diff_line = "M Tests/secrets_white_list.json" ( modified_files_list, modified_tests_list, changed_common, is_conf_json, sample_tests, modified_metadata_list, is_reputations_json, is_indicator_json, ) = get_modified_files_for_testing(diff_line) assert modified_files_list == [] assert modified_tests_list == [] assert changed_common == [] assert is_conf_json is False assert sample_tests == [] assert modified_metadata_list == set() assert is_reputations_json is False assert is_indicator_json is False
def test_common_yml_file(self, mocker): diff_line = "M scripts/script-CommonIntegration.yml" mock_get_dict_from_yaml(mocker, {"script": "cat"}, "yml") ( modified_files_list, modified_tests_list, changed_common, is_conf_json, sample_tests, modified_metadata_list, is_reputations_json, is_indicator_json, ) = get_modified_files_for_testing(diff_line) assert modified_files_list == [] assert modified_tests_list == [] assert changed_common == ["scripts/script-CommonIntegration.yml"] assert is_conf_json is False assert sample_tests == [] assert modified_metadata_list == set() assert is_reputations_json is False assert is_indicator_json is False
def test_indicator_fields(self, mocker): diff_line = "M Packs/HelloWorld/IndicatorFields/sample-field.json" mock_get_dict_from_yaml(mocker, {"id": "indicator-sample-field"}, "json") ( modified_files_list, modified_tests_list, changed_common, is_conf_json, sample_tests, modified_metadata_list, is_reputations_json, is_indicator_json, ) = get_modified_files_for_testing(diff_line) assert modified_files_list == [] assert modified_tests_list == [] assert changed_common == [] assert is_conf_json is False assert sample_tests == [] assert modified_metadata_list == set() assert is_reputations_json is False assert is_indicator_json is True
def test_test_playbook(self, mocker): diff_line = "M Packs/HelloWorld/TestPlaybooks/HelloWorld.yml" mock_get_dict_from_yaml(mocker, {"tasks": "c"}, "yml") ( modified_files_list, modified_tests_list, changed_common, is_conf_json, sample_tests, modified_metadata_list, is_reputations_json, is_indicator_json, ) = get_modified_files_for_testing(diff_line) assert modified_files_list == [] assert modified_tests_list == [ "Packs/HelloWorld/TestPlaybooks/HelloWorld.yml" ] assert changed_common == [] assert is_conf_json is False assert sample_tests == [] assert modified_metadata_list == set() assert is_reputations_json is False assert is_indicator_json is False
def test_changed_runnable_test_non_mocked_get_modified_files(self): modified_files_instance = get_modified_files_for_testing(self.GIT_DIFF_RET) assert len(modified_files_instance.sample_tests) == 0 assert 'Packs/Active_Directory_Query/Integrations/' \ 'Active_Directory_Query/Active_Directory_Query.yml' in modified_files_instance.modified_files