Skip to content

Commit c67561b

Browse files
committed
Test : filter events
1 parent c095685 commit c67561b

File tree

2 files changed

+36
-16
lines changed

2 files changed

+36
-16
lines changed

validation/graylog.py

+28-8
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,15 @@ def _wait(self, condition, attempts, sleep_duration=1):
2020
print(self._server.extract_all_logs())
2121
raise ServerTimeoutError()
2222

23+
def _waitWithParam(self, condition, attempts, contion_args, sleep_duration=1):
24+
count = 0
25+
while not condition(contion_args):
26+
time.sleep(sleep_duration)
27+
count += 1
28+
if count > attempts:
29+
print(self._server.extract_all_logs())
30+
raise ServerTimeoutError()
31+
2332
def _wait_until_graylog_has_started(self):
2433
"""
2534
We wait until the default deflector is up, as it seems to be the last operation done on startup
@@ -54,14 +63,25 @@ def create_correlation_count(self, *args, **kwargs):
5463
def get_events(self):
5564
return self._api.get_events()
5665

57-
def get_events_count(self):
58-
events = self.get_events()
59-
return events['total_events']
60-
61-
def _has_event(self):
62-
events_count = self.get_events_count()
66+
def get_events_count(self, event_definition_type=None):
67+
response = self.get_events()
68+
total = response['total_events']
69+
if event_definition_type is None:
70+
return total
71+
result = 0
72+
for i in range(total):
73+
event = response['events'][i]['event']
74+
if event['event_definition_type'] == event_definition_type:
75+
result += 1
76+
return result
77+
78+
def _has_event(self, event_definition_type=None):
79+
events_count = self.get_events_count(event_definition_type)
6380
return events_count == 1
6481

65-
def wait_until_event(self):
66-
self._wait(self._has_event, 60)
82+
def wait_until_event(self, event_definition_type=None):
83+
if event_definition_type is None:
84+
self._wait(self._has_event, 60)
85+
else:
86+
self._waitWithParam(self._has_event, 60, event_definition_type)
6787

validation/test.py

+8-8
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ def test_send_message_should_trigger_correlation_rule(self):
3838
time.sleep(_PERIOD)
3939

4040
try:
41-
self._graylog.wait_until_event()
41+
self._graylog.wait_until_event('correlation-count')
4242
except ServerTimeoutError:
4343
print(self._graylog.get_events())
4444
events_count = self._graylog.get_events_count()
@@ -52,7 +52,7 @@ def test_send_message_should_trigger_correlation_rule_with_group_by(self):
5252
time.sleep(_PERIOD)
5353
inputs.send({'short_message': 'pop'})
5454

55-
self._graylog.wait_until_event()
55+
self._graylog.wait_until_event('correlation-count')
5656

5757
def test_send_message_with_different_values_for_group_by_field_should_not_trigger_correlation_rule_with_group_by(self):
5858
self._graylog.create_correlation_count(1, group_by=['x'], period=_PERIOD)
@@ -63,7 +63,7 @@ def test_send_message_with_different_values_for_group_by_field_should_not_trigge
6363
inputs.send({'short_message': 'pop'})
6464

6565
time.sleep(20)
66-
self.assertEqual(0, self._graylog.get_events_count())
66+
self.assertEqual(0, self._graylog.get_events_count('correlation-count'))
6767

6868
def test_send_message_should_trigger_correlation_rule_with_group_by_when_value_has_a_space__issue27(self):
6969
self._graylog.create_correlation_count(1, group_by=['x'], period=_PERIOD, messages_order='BEFORE')
@@ -78,7 +78,7 @@ def test_send_message_should_trigger_correlation_rule_with_group_by_when_value_h
7878
time.sleep(_PERIOD)
7979
inputs.send({'short_message': 'pop'})
8080

81-
self._graylog.wait_until_event()
81+
self._graylog.wait_until_event('correlation-count')
8282

8383
def test_send_message_should_not_fail_on_correlation_rule_with_group_by_when_value_has_a_double_quote__issue27(self):
8484
self._graylog.create_correlation_count(1, group_by=['x'], period=_PERIOD, messages_order='BEFORE')
@@ -112,7 +112,7 @@ def test_send_message_should_trigger_correlation_rule_with_search_query(self):
112112
time.sleep(_PERIOD)
113113

114114
try:
115-
self._graylog.wait_until_event()
115+
self._graylog.wait_until_event('correlation-count')
116116
except ServerTimeoutError:
117117
print(self._graylog.get_events())
118118
events_count = self._graylog.get_events_count()
@@ -125,7 +125,7 @@ def test_send_message_should_trigger_correlation_rule_with_search_query_and_addi
125125
time.sleep(_PERIOD)
126126

127127
try:
128-
self._graylog.wait_until_event()
128+
self._graylog.wait_until_event('correlation-count')
129129
except ServerTimeoutError:
130130
print(self._graylog.get_events())
131131
events_count = self._graylog.get_events_count()
@@ -138,8 +138,8 @@ def test_send_message_should_not_trigger_correlation_rule_with_search_query(self
138138
time.sleep(_PERIOD)
139139

140140
try:
141-
self._graylog.wait_until_event()
142-
events_count = self._graylog.get_events_count()
141+
self._graylog.wait_until_event('correlation-count')
142+
events_count = self._graylog.get_events_count('correlation-count')
143143
self.fail(f'Events count: {events_count} (expected 0)')
144144
except ServerTimeoutError:
145145
print(self._graylog.get_events())

0 commit comments

Comments
 (0)