Beispiel #1
0
 def test_ping(self, mock_generate_token, mock_api_client):
     mocked_return_value = SumoLogicMockResponse(200, True)
     mock_generate_token.return_value = mocked_return_value
     mock_api_client.return_value = None
     entry_point = EntryPoint(self.connection(), self.configuration())
     ping_result = entry_point.ping_connection()
     assert ping_result["success"] is True
Beispiel #2
0
    def test_query_flow(self, mock_results_response, mock_status_response,
                        mock_query_response, mock_api_client):
        mock_api_client.return_value = None

        query_mock = "27F369FB69B2458D"
        mock_query_response.return_value = SumoLogicMockResponse(
            200, query_mock)

        dir_path = os.path.dirname(os.path.realpath(__file__))
        file_path = os.path.join(dir_path, 'api_response',
                                 'result_by_sid.json')
        results_mock = open(file_path, 'r').read()
        mock_results_response.return_value = SumoLogicMockResponse(
            200, results_mock)

        status_mock = "DONE GATHERING RESULTS"
        mock_status_response.return_value = SumoLogicMockResponse(
            200, status_mock)

        query = "{\"query\": \"(_sourcehost = \\\"sumologic.domain_name.com\\\")\"," \
                "\n\"fromTime\": \"20211007T111938\",\n\"toTime\": \"20211007T113438\"}"
        entry_point = EntryPoint(self.connection(), self.configuration())
        query_response = entry_point.create_query_connection(query)

        assert query_response is not None
        assert query_response['success'] is True
        assert 'search_id' in query_response
        assert query_response['search_id'] == "27F369FB69B2458D"

        search_id = "27F369FB69B2458D"
        status_response = entry_point.create_status_connection(search_id)

        assert status_response is not None
        assert 'status' in status_response
        assert status_response['status'] == 'COMPLETED'
        assert 'progress' in status_response
        assert status_response['progress'] == 100
        assert 'success' in status_response
        assert status_response['success'] is True

        search_id = "27F369FB69B2458D"
        offset = 0
        length = 1
        results_response = entry_point.create_results_connection(
            search_id, offset, length)

        assert 'success' in results_response
        assert results_response['success'] is True
        assert 'data' in results_response
        assert len(results_response['data']) > 0
Beispiel #3
0
    def test_ping_endpoint_exception(self, mock_generate_token,
                                     mock_api_client):
        mock_api_client.return_value = None
        mocked_return_value = SumoLogicMockResponse(401,
                                                    'Authentication Failure')
        mock_generate_token.return_value = mocked_return_value

        entry_point = EntryPoint(self.connection(), self.configuration())
        ping_response = entry_point.ping_connection()

        assert ping_response['success'] is False
        assert ping_response['connector'] == 'sumologic'
        assert ping_response[
            'error'] == "sumologic connector error => Authentication Failure"
        assert ping_response[
            'code'] == ErrorCode.TRANSMISSION_AUTH_CREDENTIALS.value
Beispiel #4
0
    def test_status_response(self, mock_status_response, mock_api_client):
        mock_api_client.return_value = None
        mocked_return_value = "DONE GATHERING RESULTS"
        mock_status_response.return_value = SumoLogicMockResponse(
            200, mocked_return_value)
        search_id = "27F369FB69B2458D"
        entry_point = EntryPoint(self.connection(), self.configuration())
        status_response = entry_point.create_status_connection(search_id)

        assert status_response is not None
        assert 'status' in status_response
        assert status_response['status'] == 'COMPLETED'
        assert 'progress' in status_response
        assert status_response['progress'] == 100
        assert 'success' in status_response
        assert status_response['success'] is True
Beispiel #5
0
    def test_results_response_empty_list(self, mock_results_response,
                                         mock_api_client):
        mock_api_client.return_value = None
        mocked_return_value = list()

        mock_results_response.return_value = SumoLogicMockResponse(
            200, mocked_return_value)

        search_id = "27F369FB69B2458D"
        offset = 0
        length = 1
        entry_point = EntryPoint(self.connection(), self.configuration())
        results_response = entry_point.create_results_connection(
            search_id, offset, length)

        assert 'success' in results_response
        assert results_response['success'] is True
        assert 'data' in results_response
        assert len(results_response['data']) == 0
Beispiel #6
0
    def test_status_response_running_cancelled(self, mock_status_response,
                                               mock_api_client):
        mock_api_client.return_value = None
        mocked_return_value = "CANCELLED"

        mock_status_response.return_value = SumoLogicMockResponse(
            200, mocked_return_value)

        search_id = "27F369FB69B2458D"
        entry_point = EntryPoint(self.connection(), self.configuration())
        status_response = entry_point.create_status_connection(search_id)

        assert status_response is not None
        assert 'status' in status_response
        assert status_response['status'] == 'CANCELED'
        assert 'progress' in status_response
        assert status_response['progress'] == 100
        assert 'success' in status_response
        assert status_response['success'] is True
import json
import unittest
from stix_shifter_utils.stix_translation.src.json_to_stix import json_to_stix_translator
from stix_shifter_modules.sumologic.entry_point import EntryPoint
from stix_shifter_utils.stix_translation.src.utils.transformer_utils import get_module_transformers

MODULE = "sumologic"
entry_point = EntryPoint()
map_data = entry_point.get_results_translator().map_data
data_source = {
    "type": "identity",
    "id": "identity--3532c56d-ea72-48be-a2ad-1a53f4c9c6d3",
    "name": "sumologic",
    "identity_class": "events"
}
options = {}


class TestSumoLogicResultsToStix(unittest.TestCase):
    """
    class to perform unit test case for sumologic translate results
    """
    @staticmethod
    def get_first(itr, constraint):
        """
        return the obj in the itr if constraint is true
        """
        return next((obj for obj in itr if constraint(obj)), None)

    @staticmethod
    def get_first_of_type(itr, typ):
Beispiel #8
0
 def test_is_async(self, mock_api_client):
     mock_api_client.return_value = None
     entry_point = EntryPoint(self.connection(), self.configuration())
     check_async = entry_point.is_async()
     assert check_async is True