27 lines
877 B
Python
27 lines
877 B
Python
import unittest
|
|
|
|
from fgai.graylog_source import GraylogStreamSource
|
|
|
|
|
|
class _Client:
|
|
def probe(self):
|
|
return {"status": "connected"}
|
|
|
|
def call_tool(self, _name, _arguments):
|
|
return {"result": {"content": [{"type": "text", "text": '{"messages":[{"client":"10.0.0.1","server":"8.8.8.8","result":"deny"}]}' }]}}
|
|
|
|
|
|
class GraylogSourceTests(unittest.TestCase):
|
|
def test_applies_custom_mapping_to_generic_stream_message(self):
|
|
events, status = GraylogStreamSource(
|
|
_Client(), "vpn", field_mapping='{"srcip":"client","dstip":"server","action":"result"}'
|
|
).fetch()
|
|
self.assertEqual(status["events_fetched"], 1)
|
|
self.assertEqual(events[0].src_ip, "10.0.0.1")
|
|
self.assertEqual(events[0].dst_ip, "8.8.8.8")
|
|
self.assertEqual(events[0].action, "deny")
|
|
|
|
|
|
if __name__ == "__main__":
|
|
unittest.main()
|