import A1000FinalClassification import demistomock as demisto import pytest from A1000FinalClassification import main test_args = { "a1000_full_report": {"results": [{"classification": "malicious", "sha1": "e5a64e300d880f3f9248a17124ccc49391c760f9"}]}, "a1000_classification_report": {"classification": "malicious", "sha1": "e5a64e300d880f3f9248a17124ccc49391c760f9"}, } test_data = [ ("UNKNOWN", "GOODWARE", 1), ("UNKNOWN", "MALICIOUS", 3), ("SUSPICIOUS", "GOODWARE", 2), ("GOODWARE", "MALICIOUS", 3), ("MALICIOUS", "GOODWARE", 3), ] @pytest.mark.parametrize("a1000_classification, cloud_classification, expected_result", test_data) def test_main__happy_path(mocker, a1000_classification, cloud_classification, expected_result): args = test_args.copy() args["a1000_classification_report"]["classification"] = cloud_classification args["a1000_full_report"]["results"][0]["classification"] = a1000_classification mocker.patch.object(demisto, "args", return_value=args) mocker.patch("A1000FinalClassification.return_results") main() res = A1000FinalClassification.return_results.call_args[0][0] assert res.indicator.dbot_score.score == expected_result @pytest.mark.parametrize("key_to_be_none", ["a1000_classification_report", "a1000_full_report"]) def test_main__return_error(mocker, key_to_be_none): args = test_args.copy() args[key_to_be_none] = None mocker.patch.object(demisto, "error") mocker.patch.object(demisto, "args", return_value=args) mocker.patch("A1000FinalClassification.return_error") main() err_msg = A1000FinalClassification.return_error.call_args[0][0] assert "not specified" in err_msg