ShowCPEmailInfo

Get email info from Check Point Smart API.

python · Check Point Harmony Email and Collaboration (HEC)

Details

IDShowCPEmailInfo
Languagepython
From Version6.9.0
Docker Imagedemisto/python3:3.12.13.10116658

README

Get email info from Check Point Smart API.

Script Data


Name Description
Script Type python3
Cortex XSOAR Version 6.9.0

Dependencies


This script uses the following commands and scripts.

  • checkpointhec-get-email-info

Inputs


There are no inputs for this script.

Outputs


There are no outputs for this script.

import json

import demistomock as demisto
from ShowCPEmailInfo import dict_to_md, get_email_info


def util_load_json(path):
    with open(path, encoding="utf-8") as f:
        return json.loads(f.read())


def test_get_email_info_error(mocker):
    error = "Error: Entity not found"

    def execute_command(name, args):
        if name == "checkpointhec-get-entity":
            return [{"Contents": error}]

        raise ValueError(f"Error: Unknown command or command/argument pair: {name} {args!r}")

    mocker.patch.object(demisto, "executeCommand", side_effect=execute_command)

    success, email_info = get_email_info("0000", "CheckPointHEC-instance-1")
    assert success is False
    assert email_info == error


def test_get_email_info_success(mocker):
    mock_response = util_load_json("./test_data/checkpointhec-get_entity.json")

    def execute_command(name, args):
        if name == "checkpointhec-get-entity":
            return [{"Contents": mock_response["responseData"][0]["entityPayload"]}]

        if name == "setIncident":
            return None

        raise ValueError(f"Error: Unknown command or command/argument pair: {name} {args!r}")

    mocker.patch.object(demisto, "executeCommand", side_effect=execute_command)

    success, email_info = get_email_info("0000", "CheckPointHEC-instance-1")
    assert success is True
    assert email_info == dict_to_md(mock_response["responseData"][0]["entityPayload"])


def test_dict_to_md():
    mock_response = util_load_json("./test_data/checkpointhec-get_entity.json")
    md = dict_to_md(mock_response["responseData"][0]["entityPayload"])
    lines = [
        "|field|value|",
        "|-|-|",
        "|fromEmail|example@checkpoint.com|",
        "|to|unicode@avanandevus1.onmicrosoft.com, user1@avanandevus1.onmicrosoft.com|",
        "|recipients|user1@avanandevus1.onmicrosoft.com, unicode@avanandevus1.onmicrosoft.com|",
        "|subject|Fw: dnp-split-quarantine-2|",
        "|received|2022-08-15T21:24:15|",
        "|isDeleted|False|",
        "|isIncoming|True|",
        "|isOutgoing|False|",
        "|internetMessageId|<00000000.00000000000000.00000000000000.00000000@mail.example.com>|",
        "|isUserExposed|True|",
    ]
    assert md == "\n".join(lines)