コード例 #1
0
def test_get_rootcheck_agent_filters(mock_connect, mock_send, mock_info,
                                     filters, total_expected_items):
    """Checks if the number of items returned is as expected when using different filters.

    Parameters
    ----------
    filters : dict
        Strings to filter by.
    total_expected_items : int
        Number of expected items to be returned.
    """
    result = rootcheck.get_rootcheck_agent(agent_list=['001'],
                                           filters=filters).render()['data']
    assert result['total_affected_items'] == total_expected_items
コード例 #2
0
def test_get_rootcheck_agent_query(mock_connect, mock_send, mock_info, query,
                                   total_expected_items):
    """Checks if the number of items returned is as expected when using query parameter.

    Parameters
    ----------
    query : str
        Query to be applied in the database
    total_expected_items : int
        Number of expected items to be returned.
    """
    result = rootcheck.get_rootcheck_agent(agent_list=['001'],
                                           q=query,
                                           filters={
                                               'status': 'all'
                                           }).render()['data']
    assert result['total_affected_items'] == total_expected_items
コード例 #3
0
def test_get_rootcheck_agent_sort(mock_connect, mock_send, mock_info, sort,
                                  first_item):
    """Checks if the the first item returned is expected when using sort parameter

    Parameters
    ----------
    sort : str
        Field and order to sort by
    first_item : int
        Expected string to be contained in the log of the first returned element.
    """
    result = rootcheck.get_rootcheck_agent(agent_list=['001'],
                                           sort=parse_api_param(sort, 'sort'),
                                           filters={
                                               'status': 'all'
                                           }).render()['data']

    assert first_item in result['affected_items'][0]['log']
コード例 #4
0
def test_get_rootcheck_agent_search(mock_connect, mock_send, mock_info, search,
                                    total_expected_items):
    """Checks if the number of items returned is as expected when using the search parameter.

    Parameters
    ----------
    search : str
        String to be searched in the database.
    total_expected_items : int
        Number of expected items to be returned.
    """
    result = rootcheck.get_rootcheck_agent(agent_list=['001'],
                                           search=parse_api_param(
                                               search, 'search'),
                                           filters={
                                               'status': 'all'
                                           }).render()['data']
    assert result['total_affected_items'] == total_expected_items
コード例 #5
0
def test_get_rootcheck_agent_distinct(mock_connect, mock_send, mock_info,
                                      select, distinct, total_expected_items):
    """Checks if the number of items returned is as expected when using distinct and select parameters.

    Parameters
    ----------
    select : list
        Fields to be returned.
    distinct : bool
        Whether to apply distinct filter.
    total_expected_items : int
        Number of expected items to be returned.
    """
    result = rootcheck.get_rootcheck_agent(agent_list=['001'],
                                           select=select,
                                           distinct=distinct,
                                           filters={
                                               'status': 'all'
                                           }).render()['data']
    assert result['total_affected_items'] == total_expected_items
コード例 #6
0
def test_get_rootcheck_agent_select(mock_connect, mock_send, mock_info,
                                    select):
    """Check that only selected elements are returned

    Parameters
    ----------
    select : list
        Fields to be returned.
    """
    result = rootcheck.get_rootcheck_agent(agent_list=['001'],
                                           select=select,
                                           filters={
                                               'status': 'all'
                                           }).render()['data']
    select = select if select else list(WazuhDBQueryRootcheck.fields.keys())

    # Check returned keys are specified inside 'select' field
    for item in result['affected_items']:
        for key in item.keys():
            assert key in select
コード例 #7
0
def test_get_rootcheck_agent(mock_connect, mock_send, mock_info, limit):
    """Check if limit is correctly applied to get_rootcheck_agent() function

    Parameters
    ----------
    limit : int
        Number of items to be returned.
    """
    result = rootcheck.get_rootcheck_agent(agent_list=['001'],
                                           limit=limit,
                                           filters={
                                               'status': 'all'
                                           }).render()['data']
    limit = limit if limit else 6
    assert len(result['affected_items']
               ) == limit and result['total_affected_items'] == 6
    assert len(
        result['failed_items']) == 0 and result['total_failed_items'] == 0

    # Check returned keys are allowed (they exist in core/rootcheck -> fields)
    for item in result['affected_items']:
        for key in item.keys():
            assert key in WazuhDBQueryRootcheck.fields