Esempio n. 1
0
def test_mark_incident_as_resolved_handles_error(requests_mock):
    """Tests the mark_incident_as_resolved_command function response error.
    """
    from SOCRadarIncidents import Client, mark_incident_as_resolved_command

    mock_socradar_company_id = "0"
    mock_incident_id = 0
    mock_comment = "Mock Comment"
    mock_socradar_api_key = "APIKey"
    mock_response = util_load_json(
        'test_data/mark_incident_resolved_response_error.json')
    suffix = f'company/{mock_socradar_company_id}/incidents/resolve?key={mock_socradar_api_key}'
    requests_mock.post(f'{SOCRADAR_API_ENDPOINT}/{suffix}', json=mock_response)

    mock_args = {
        'socradar_incident_id': mock_incident_id,
        'comments': mock_comment
    }

    client = Client(base_url=SOCRADAR_API_ENDPOINT,
                    api_key=mock_socradar_api_key,
                    socradar_company_id=mock_socradar_company_id,
                    verify=False,
                    proxy=False)

    with pytest.raises(DemistoException):
        mark_incident_as_resolved_command(client=client, args=mock_args)
Esempio n. 2
0
def test_mark_incident_as_fp_handles_error(requests_mock):
    """Tests the mark_incident_as_fp_command function.

 Configures requests_mock instance to generate the appropriate
 SOCRadar mark incident as fp API response, loaded from a local JSON file. Checks
 the output of the command function with the expected output.
 """
    from SOCRadarIncidents import Client, mark_incident_as_fp_command

    mock_socradar_company_id = "0"
    mock_incident_id = 0
    mock_comment = "Mock Comment"
    mock_socradar_api_key = "APIKey"
    mock_response = util_load_json(
        'test_data/mark_incident_fp_response_error.json')
    suffix = f'company/{mock_socradar_company_id}/incidents/fp?key={mock_socradar_api_key}'
    requests_mock.post(f'{SOCRADAR_API_ENDPOINT}/{suffix}', json=mock_response)

    mock_args = {
        'socradar_incident_id': mock_incident_id,
        'comments': mock_comment
    }

    client = Client(base_url=SOCRADAR_API_ENDPOINT,
                    api_key=mock_socradar_api_key,
                    socradar_company_id=mock_socradar_company_id,
                    verify=False,
                    proxy=False)

    with pytest.raises(DemistoException):
        mark_incident_as_fp_command(client=client, args=mock_args)
Esempio n. 3
0
def test_fetch_incidents_handles_incorrect_severity():
    """Tests the fetch-incidents function incorrect severity error.
    """
    from SOCRadarIncidents import Client, fetch_incidents

    mock_socradar_company_id = "0"
    mock_socradar_api_key = "APIKey"

    client = Client(base_url=SOCRADAR_API_ENDPOINT,
                    api_key=mock_socradar_api_key,
                    socradar_company_id=mock_socradar_company_id,
                    verify=False,
                    proxy=False)

    last_run = {
        'last_fetch': 1594512000  # Jul 12, 2020
    }

    mock_first_fetch_time = arg_to_datetime(arg='30 days',
                                            arg_name='First fetch time')

    incorrect_severity_levels = ['Incorrect', 'Severity', 'Levels']

    with pytest.raises(ValueError):
        fetch_incidents(client=client,
                        max_results=2,
                        last_run=last_run,
                        first_fetch_time=mock_first_fetch_time,
                        resolution_status='all',
                        fp_status='all',
                        severity=incorrect_severity_levels,
                        incident_main_type=None,
                        incident_sub_type=None)
Esempio n. 4
0
def test_fetch_incidents(requests_mock):
    """Tests the fetch-incidents function.

 Configures requests_mock instance to generate the appropriate
 SOCRadar Incidents API response, loaded from a local JSON file. Checks
 the output of the command function with the expected output.
 """
    from SOCRadarIncidents import Client, fetch_incidents

    mock_socradar_company_id = "0"
    mock_socradar_api_key = "APIKey"
    mock_response = util_load_json('test_data/fetch_incidents_response.json')
    suffix = f'company/{mock_socradar_company_id}/incidents/v2?key={mock_socradar_api_key}' \
             f'&severity=Medium%2CHigh' \
             f'&limit=2' \
             f'&start_date=1594512000'
    requests_mock.get(f'{SOCRADAR_API_ENDPOINT}/{suffix}', json=mock_response)

    client = Client(base_url=SOCRADAR_API_ENDPOINT,
                    api_key=mock_socradar_api_key,
                    socradar_company_id=mock_socradar_company_id,
                    verify=False,
                    proxy=False)

    last_run = {
        'last_fetch': 1594512000  # Jul 12, 2020
    }

    mock_first_fetch_time = arg_to_datetime(arg='30 days',
                                            arg_name='First fetch time')

    _, new_incidents = fetch_incidents(client=client,
                                       max_results=2,
                                       last_run=last_run,
                                       first_fetch_time=mock_first_fetch_time,
                                       resolution_status='all',
                                       fp_status='all',
                                       severity=['Medium', 'High'],
                                       incident_main_type=None,
                                       incident_sub_type=None)

    expected_output = util_load_json(
        'test_data/fetch_incidents_expected_output.json')

    assert new_incidents == expected_output
    assert len(new_incidents) <= 2
Esempio n. 5
0
def test_test_module(requests_mock):
    """Tests the test_module validation command.
    """
    from SOCRadarIncidents import Client, test_module

    mock_socradar_api_key = "APIKey"
    mock_socradar_company_id = "0"
    suffix = f'company/{mock_socradar_company_id}/incidents/check/auth?key={mock_socradar_api_key}'
    mock_response = util_load_json('test_data/check_auth_response.json')
    requests_mock.get(f'{SOCRADAR_API_ENDPOINT}/{suffix}', json=mock_response)

    client = Client(base_url=SOCRADAR_API_ENDPOINT,
                    api_key=mock_socradar_api_key,
                    socradar_company_id=mock_socradar_company_id,
                    verify=False,
                    proxy=False)

    response = test_module(client)

    assert response == 'ok'
Esempio n. 6
0
def test_test_module_handles_authorization_error(requests_mock):
    """Tests the test_module validation command authorization error.
    """
    from SOCRadarIncidents import Client, test_module, MESSAGES

    mock_socradar_api_key = "WrongAPIKey"
    mock_socradar_company_id = "0"
    suffix = f'company/{mock_socradar_company_id}/incidents/check/auth?key={mock_socradar_api_key}'
    mock_response = util_load_json(
        'test_data/check_auth_response_auth_error.json')
    requests_mock.get(f'{SOCRADAR_API_ENDPOINT}/{suffix}',
                      json=mock_response,
                      status_code=401)
    client = Client(base_url=SOCRADAR_API_ENDPOINT,
                    api_key=mock_socradar_api_key,
                    socradar_company_id=mock_socradar_company_id,
                    verify=False,
                    proxy=False)
    with pytest.raises(DemistoException,
                       match=MESSAGES['AUTHORIZATION_ERROR']):
        test_module(client)
Esempio n. 7
0
def test_mark_incident_as_resolved(requests_mock):
    """Tests the mark_incident_as_resolved_command function.

 Configures requests_mock instance to generate the appropriate
 SOCRadar mark incident as resolved API response, loaded from a local JSON file. Checks
 the output of the command function with the expected output.
 """
    from SOCRadarIncidents import Client, mark_incident_as_resolved_command

    mock_socradar_company_id = "0"
    mock_incident_id = 0
    mock_comment = "Mock Comment"
    mock_socradar_api_key = "APIKey"
    mock_response = util_load_json(
        'test_data/mark_incident_resolved_response.json')
    suffix = f'company/{mock_socradar_company_id}/incidents/resolve?key={mock_socradar_api_key}'
    requests_mock.post(f'{SOCRADAR_API_ENDPOINT}/{suffix}', json=mock_response)

    mock_args = {
        'socradar_incident_id': mock_incident_id,
        'comments': mock_comment
    }

    client = Client(base_url=SOCRADAR_API_ENDPOINT,
                    api_key=mock_socradar_api_key,
                    socradar_company_id=mock_socradar_company_id,
                    verify=False,
                    proxy=False)

    response = mark_incident_as_resolved_command(client=client, args=mock_args)

    expected_output = util_load_json(
        'test_data/mark_incident_resolved_expected_output.json')

    assert isinstance(response, CommandResults)
    assert response.raw_response == expected_output