def test_ip_quick_check_command(args, test_scenario, api_response, status_code, expected_output, mocker): """ Tests various combinations of valid and invalid responses for ip-quick-check command. """ client = GreyNoise.Client("true_api_key", "dummy_server", 10, "proxy", False, "dummy_integration") dummy_response = DummyResponse({"Content-Type": "application/json"}, json.dumps(api_response), status_code) if test_scenario == "positive": mocker.patch("requests.Session.get", return_value=dummy_response) response = GreyNoise.ip_quick_check_command(client, args) assert response.outputs == expected_output elif test_scenario == "negative" and status_code == 200: mocker.patch("requests.Session.get", return_value=dummy_response) response = GreyNoise.ip_quick_check_command(client, args) with open("test_data/quick_check.md") as f: expected_hr = f.read() assert response.readable_output == expected_hr elif test_scenario == "negative": mocker.patch("requests.Session.get", return_value=dummy_response) with pytest.raises(Exception) as err: _ = GreyNoise.ip_quick_check_command(client, args) assert str(err.value) == expected_output elif test_scenario == "custom": mocker.patch("greynoise.GreyNoise.quick", return_value=api_response) with pytest.raises(Exception) as err: _ = GreyNoise.ip_quick_check_command(client, args) assert str(err.value) == expected_output
def test_riot_command(mocker, test_scenario, status_code, input_data, expected): """ Test various inputs for riot command """ client = GreyNoise.Client( api_key="true_api_key", api_server="dummy_server", timeout=10, proxy="proxy", use_cache=False, integration_name="dummy_integration", ) dummy_response = DummyResponse({"Content-Type": "application/json"}, json.dumps(expected["raw_data"]), status_code) mocker.patch("requests.Session.get", return_value=dummy_response) if test_scenario == "positive": response = GreyNoise.riot_command(client, input_data) assert response.outputs == expected["raw_data"] else: with pytest.raises(Exception) as err: _ = GreyNoise.riot_command(client, input_data) assert str(err.value) == expected["error_message"].format( input_data["ip"])
def test_context_command(mocker, args, test_scenario, api_response, status_code, expected_output): """ Test various inputs for context command """ client = GreyNoise.Client( api_key="true_api_key", api_server="dummy_server", timeout=10, proxy="proxy", use_cache=False, integration_name="dummy_integration", ) dummy_response = DummyResponse({"Content-Type": "application/json"}, json.dumps(expected_output), status_code) mocker.patch("requests.Session.get", return_value=dummy_response) if test_scenario == "positive": response = GreyNoise.context_command(client, args) assert response.outputs == expected_output else: mocker.patch("requests.Session.get", return_value=dummy_response) with pytest.raises(Exception) as err: _ = GreyNoise.ip_reputation_command(client, args) print("this is err: " + str(err)) assert str(err.value) == expected_output
def test_test_module(api_key, api_response, status_code, expected_output, mocker): """ Tests test_module for GreyNoise integration. """ client = GreyNoise.Client(api_key, "dummy_server", 10, "proxy", False, "dummy_integration") if isinstance(api_key, str) and api_key == "true_key": mocker.patch("greynoise.GreyNoise._request", return_value=api_response) response = GreyNoise.test_module(client) assert response == expected_output else: dummy_response = DummyResponse({}, api_response, status_code) mocker.patch("requests.Session.get", return_value=dummy_response) with pytest.raises(Exception) as err: _ = GreyNoise.test_module(client) assert str(err.value) == expected_output
def test_stats_command(args, test_scenario, api_response, status_code, expected_output, mocker): """ Tests various combinations of valid and invalid responses for stats command. """ client = GreyNoise.Client("true_api_key", "dummy_server", 10, "proxy", False, "dummy_integration") dummy_response = DummyResponse({"Content-Type": "application/json"}, json.dumps(api_response), status_code) mocker.patch("requests.Session.get", return_value=dummy_response) if test_scenario == "positive": response = GreyNoise.stats_command(client, args) assert response.outputs == expected_output else: with pytest.raises(Exception) as err: _ = GreyNoise.stats_command(client, args) assert str(err.value) == expected_output