36 lines
1.2 KiB
Python
36 lines
1.2 KiB
Python
import unittest
|
|
|
|
from fgai.logs import local_in_failures, parse_log_line, top_field_values
|
|
|
|
|
|
class DiagnosticTests(unittest.TestCase):
|
|
def test_local_in_failures_group_by_source_service_policy(self):
|
|
events = [
|
|
parse_log_line(
|
|
'type=traffic policytype="local-in-policy6" policyid=2 srcip=192.168.1.20 '
|
|
'service="udp/5353" msg="Connection Failed"'
|
|
),
|
|
parse_log_line(
|
|
'type=traffic policytype="local-in-policy6" policyid=2 srcip=192.168.1.20 '
|
|
'service="udp/5353" msg="Connection Failed"'
|
|
),
|
|
]
|
|
|
|
self.assertEqual(
|
|
local_in_failures(events),
|
|
[{"src_ip": "192.168.1.20", "service": "udp/5353", "policy": "2", "count": 2}],
|
|
)
|
|
|
|
def test_top_field_values_counts_values(self):
|
|
events = [
|
|
parse_log_line("srcip=1.1.1.1 service=https"),
|
|
parse_log_line("srcip=1.1.1.1 service=http"),
|
|
parse_log_line("srcip=8.8.8.8 service=http"),
|
|
]
|
|
|
|
self.assertEqual(top_field_values(events, "srcip", limit=1), [{"value": "1.1.1.1", "count": 2}])
|
|
|
|
|
|
if __name__ == "__main__":
|
|
unittest.main()
|