def test_get_details_posts_to_expected_url( self, mock_connection, user_context, successful_post, py42_response ): py42_response.text = TEST_PARSEABLE_ALERT_DETAIL_RESPONSE mock_connection.post.return_value = py42_response alert_service = AlertService(mock_connection, user_context) alert_ids = ["ALERT_ID_1", "ALERT_ID_2"] alert_service.get_details(alert_ids) assert mock_connection.post.call_args[0][0] == "/svc/api/v1/query-details"
def test_get_details_when_given_single_alert_id_posts_expected_data( self, mock_connection, user_context, successful_post, py42_response, alert_id): py42_response.text = TEST_PARSEABLE_ALERT_DETAIL_RESPONSE mock_connection.post.return_value = py42_response alert_service = AlertService(mock_connection, user_context) alert_service.get_details(alert_id) post_data = mock_connection.post.call_args[1]["json"] assert (post_data["tenantId"] == TENANT_ID_FROM_RESPONSE and post_data["alertIds"][0] == "ALERT_ID_1")
def test_get_details_when_given_tenant_id_posts_expected_data( self, mock_connection, user_context, successful_post, mocker): response = create_mock_response(mocker, TEST_PARSEABLE_ALERT_DETAIL_RESPONSE) mock_connection.post.return_value = response alert_service = AlertService(mock_connection, user_context) alert_ids = ["ALERT_ID_1", "ALERT_ID_2"] alert_service.get_details(alert_ids) post_data = mock_connection.post.call_args[1]["json"] assert (post_data["tenantId"] == TENANT_ID_FROM_RESPONSE and post_data["alertIds"][0] == "ALERT_ID_1" and post_data["alertIds"][1] == "ALERT_ID_2")
def test_get_details_when_observation_data_not_parseable_remains_unchanged( self, mocker, mock_connection, user_context): requests_response = mocker.MagicMock(spec=Response) requests_response.text = TEST_NON_PARSEABLE_ALERT_DETAIL_RESPONSE py42_response = Py42Response(requests_response) mock_connection.post.return_value = py42_response alert_service = AlertService(mock_connection, user_context) response = alert_service.get_details("alert_id") observation_data = response["alerts"][0]["observations"][0]["data"] expected_observation_data = '{"invalid_json": ][ }' assert observation_data == expected_observation_data
def test_get_details_converts_json_observation_strings_to_objects( self, mocker, mock_connection, user_context): requests_response = mocker.MagicMock(spec=Response) requests_response.text = TEST_PARSEABLE_ALERT_DETAIL_RESPONSE py42_response = Py42Response(requests_response) mock_connection.post.return_value = py42_response alert_service = AlertService(mock_connection, user_context) response = alert_service.get_details("alert_id") observation_data = response["alerts"][0]["observations"][0]["data"] assert observation_data["example_key"] == "example_string_value" assert type(observation_data["example_list"]) is list