Skip to content

Commit e6b032b

Browse files
committed
test the hec obj a little more
1 parent 6400e61 commit e6b032b

File tree

3 files changed

+39
-3
lines changed

3 files changed

+39
-3
lines changed

hubblestack/hec/obj.py

+4-3
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818

1919
from . dq import DiskQueue, NoQueue, QueueCapacityError
2020
from hubblestack.utils.stdrec import update_payload
21+
from hubblestack.utils.encoding import encode_something_to_bytes
2122

2223
__version__ = '1.0'
2324

@@ -259,7 +260,7 @@ def __init__(self, token, index, http_event_server, host='', http_event_port='80
259260
md5 = hashlib.md5()
260261
uril = sorted([ x.uri for x in self.server_uri ])
261262
for u in uril:
262-
md5.update(u)
263+
md5.update(encode_something_to_bytes(u))
263264
actual_disk_queue = os.path.join(disk_queue, md5.hexdigest())
264265
log.debug("disk_queue for %s: %s", uril, actual_disk_queue)
265266
self.queue = DiskQueue(actual_disk_queue, size=disk_queue_size, compression=disk_queue_compression)
@@ -299,12 +300,12 @@ def _queue_event(self, payload, meta_data=None):
299300
log.error("disk queue is full, dropping payload")
300301

301302

302-
def queueEvent(self, dat, eventtime=''):
303+
def queueEvent(self, dat, eventtime='', no_queue=False):
303304
if not isinstance(dat, Payload):
304305
dat = Payload(dat, eventtime, no_queue=no_queue)
305306
if dat.no_queue: # here you silly hec, queue this no_queue payload...
306307
return
307-
count_input(payload)
308+
count_input(dat)
308309
self._queue_event(dat)
309310

310311
def flushQueue(self):

tests/unittests/test_hec_dq.py

+2
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
# coding: utf-8
2+
13
import pytest
24
import os
35

tests/unittests/test_hec_obj.py

+33
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
# coding: utf-8
2+
3+
import os
4+
import json
5+
import mock
6+
from hubblestack.hec import HEC
7+
8+
TEST_DQ_DIR = os.environ.get('TEST_DQ_DIR', '/tmp/dq.{0}'.format(os.getuid()))
9+
10+
@mock.patch.object(HEC, '_send')
11+
def test_hec__send_trivially(mock_send):
12+
hec = HEC('token', 'index', 'server')
13+
hec.sendEvent({'test': 'test-tacular'})
14+
assert json.loads(mock_send.call_args.args[0].dat)['test'] == 'test-tacular'
15+
16+
@mock.patch.object(HEC, '_send') # just in case, not actually used
17+
def test_queue_things_with_compression(mock_send, __opts__, __salt__):
18+
hec = HEC('token', 'index', 'server',
19+
disk_queue=TEST_DQ_DIR, disk_queue_size=1000,
20+
disk_queue_compression=9)
21+
22+
results_of_side_effect = list()
23+
def side_effect(x):
24+
results_of_side_effect.append(x)
25+
mock_send.side_effect = side_effect
26+
27+
gz = list()
28+
for i in range(100):
29+
dat = {f'event{i}': f'test{i}'}
30+
hec.queueEvent(dat)
31+
gz.append( json.dumps(dat) )
32+
hec.flushQueue()
33+
assert ' '.join(results_of_side_effect) == ' '.join(gz)

0 commit comments

Comments
 (0)