"""Qintel QSentry Integration for Cortex XSOAR - Unit Tests file""" import json MOCK_URL = "https://this-is-only-a-test.local" MOCK_CLIENT_ID = "client-id" MOCK_CLIENT_SECRET = "client-secret" def util_load_json(path): with open(path, encoding="utf-8") as f: return json.loads(f.read()) def test_make_timestamp(): from datetime import datetime from QintelQSentry import _make_timestamp res = _make_timestamp(None) assert res is None res = _make_timestamp(1626211855) assert isinstance(res, datetime) assert res.isoformat() == "2021-07-13T21:30:55" res = _make_timestamp("2021-07-13T21:30:55") assert isinstance(res, datetime) assert int(res.timestamp()) == 1626211855 def test_test_module(mocker): """Tests test-module command function with valid response. Checks the output of the command function with the expected output. """ from QintelQSentry import Client, test_module client = Client(base_url=MOCK_URL, verify=False, client_id=MOCK_CLIENT_ID, client_secret=MOCK_CLIENT_SECRET) mock_response = util_load_json("test_data/test_module.json") mocker.patch.object(Client, "_http_request", return_value=mock_response) response = test_module(client) assert response == "ok" def test_ip_command(mocker): """Tests ip reputation command function with valid response. Checks the output of the command function with the expected output. """ from QintelQSentry import Client, ip_command client = Client(base_url=MOCK_URL, verify=False, client_id=MOCK_CLIENT_ID, client_secret=MOCK_CLIENT_SECRET) mock_response = util_load_json("test_data/ip_command.json") mocker.patch.object(Client, "_http_request", return_value=mock_response) args = { "ip": "192.168.35.100", } response = ip_command(client, args) assert len(response) == 1 outputs = response[0].outputs hr = response[0].readable_output prefix = response[0].outputs_prefix assert prefix == "Qintel.IP" assert "Qintel results for IP: 192.168.35.100" in hr assert "|ASN|AS Owner|Tags|Description|Last Observed|" in hr assert "| 65000 | Some Service Provider | Criminal,
Proxy,
Vpn |" in hr assert outputs["Address"] == "192.168.35.100" assert outputs["Tags"] == ["Criminal", "Proxy", "Vpn"] assert len(outputs["Description"]) == 4 assert outputs["LastObserved"] == "2021-07-29 11:00:00"