def test_failed_send_private(send_mock, connect_mock): """ Tests an exception is properly raised when it's not possible to send a msg to the wdb socket """ def recv_mock(size_to_receive): error_string = b'err {"agents": {"001": "Error"}}' return bytes(len(error_string)) if size_to_receive == 4 else error_string with patch('socket.socket.recv', side_effect=recv_mock): mywdb = WazuhDBConnection() with pytest.raises(exception.WazuhException, match=".* 2003 .*"): mywdb._send('test_msg')
def test_wrong_character_encodings_wdb(send_mock, connect_mock): """ Tests receiving a text with a bad character encoding from wazuh db """ def recv_mock(size_to_receive): bad_string = b' {"bad": "\x96bad"}' return bytes(len(bad_string)) if size_to_receive == 4 else bad_string with patch('socket.socket.recv', side_effect=recv_mock): mywdb = WazuhDBConnection() received = mywdb._send("test") assert received == {"bad": "bad"}
def test_null_values_are_removed(send_mock, connect_mock): """ Tests '(null)' values are removed from the resulting dictionary """ def recv_mock(size_to_receive): nulls_string = b' {"a": "a", "b": "(null)", "c": [1, 2, 3], "d": {"e": "(null)"}}' return bytes(len(nulls_string)) if size_to_receive == 4 else nulls_string with patch('socket.socket.recv', side_effect=recv_mock): mywdb = WazuhDBConnection() received = mywdb._send("test") assert received == {"a": "a", "c": [1, 2, 3], "d": {}}