Beispiel #1
0
def test_get_sca_list(mock_agent, mock_sca_agent):
    """
    Checks data are properly loaded from database
    """
    with patch('wazuh.core.utils.WazuhDBConnection') as mock_wdb:
        mock_wdb.return_value = InitWDBSocketMock(
            sql_schema_file='schema_sca_test.sql')
        result = get_sca_list(agent_list=['000'])
        assert isinstance(result, AffectedItemsWazuhResult)
        result = result.to_dict()
        assert isinstance(result['total_affected_items'], int)
        assert len(result['affected_items']) > 0
        sca = result['affected_items'][0]
        assert isinstance(sca, dict)
        assert set(sca.keys()) == set(cols_returned_from_db_sca)

        result = get_sca_list(agent_list=['999'])
        assert isinstance(result, AffectedItemsWazuhResult)
        result = result.to_dict()
        assert isinstance(result['total_affected_items'], int)
        assert result['total_affected_items'] == 0
        assert len(result['affected_items']) == 0
        assert result['total_failed_items'] == 1
        assert len(result['failed_items']) == 1
        failed = result['failed_items']
        assert isinstance(list(failed.keys())[0], WazuhResourceNotFound)
        assert list(failed.keys())[0].to_dict()['code'] == 1701
        assert failed[list(failed.keys())[0]] == {'999'}
Beispiel #2
0
def test_get_sca_list_search_param(mock_agent, mock_sca_agent):
    """
    Checks only selected fields are loaded from database
    """
    with patch('wazuh.core.utils.WazuhDBConnection') as mock_wdb:
        mock_wdb.return_value = InitWDBSocketMock(
            sql_schema_file='schema_sca_test.sql')
        search = {'value': 'debian', 'negation': False}
        result = get_sca_list(agent_list=['000'], search=search)
        assert isinstance(result, AffectedItemsWazuhResult)
        result = result.to_dict()
        assert isinstance(result['total_affected_items'], int)
        assert len(result['affected_items']) > 0

        search = {'value': 'foo', 'negation': False}
        result = get_sca_list(agent_list=['000'], search=search)
        assert isinstance(result, AffectedItemsWazuhResult)
        result = result.to_dict()
        assert isinstance(result['total_affected_items'], int)
        assert len(result['affected_items']) == 0

        search = {'value': 'foo', 'negation': True}
        result = get_sca_list(agent_list=['000'], search=search)
        assert isinstance(result, AffectedItemsWazuhResult)
        result = result.to_dict()
        assert isinstance(result['total_affected_items'], int)
        assert len(result['affected_items']) > 0
Beispiel #3
0
def test_sca_failed_limit(mock_agent, mock_sca_agent):
    """
    Test failing using not correct limits
    """
    with patch('wazuh.core.sca.WazuhDBBackend') as mock_wdb:
        mock_wdb.return_value.connect_to_db.return_value.execute.side_effect = get_fake_sca_data
        with pytest.raises(exception.WazuhException, match=".* 1405 .*"):
            get_sca_list(agent_list=['000'],
                         limit=common.maximum_database_limit + 1)

        with pytest.raises(exception.WazuhException, match=".* 1406 .*"):
            get_sca_list(agent_list=['000'], limit=0)
Beispiel #4
0
def test_get_sca_list_select_param(mock_agent, mock_sca_agent):
    """
    Checks only selected fields are loaded from database
    """
    with patch('wazuh.core.utils.WazuhDBConnection') as mock_wdb:
        mock_wdb.return_value = InitWDBSocketMock(
            sql_schema_file='schema_sca_test.sql')
        fields = ['name', 'policy_id']
        result = get_sca_list(agent_list=['000'], select=fields)
        assert isinstance(result, AffectedItemsWazuhResult)
        result = result.to_dict()
        assert isinstance(result['total_affected_items'], int)
        assert len(result['affected_items']) > 0
        sca = result['affected_items'][0]
        assert isinstance(sca, dict)
        assert set(sca.keys()) == set(fields)