示例#1
0
	def test_alphabet(self):
		cache = TestCache([
			event.Event(name="A", host="A", creation=1, arrival=6),
			event.Event(name="B", host="A", creation=2, arrival=5),
			event.Event(name="B", host="A", creation=3, arrival=4),
			event.Event(name="B", host="C", creation=4, arrival=3),
			event.Event(name="C", host="C", creation=5, arrival=2),
			event.Event(name="C", host="E", creation=5, arrival=2), # note the timestamps -> sorting must be stable
		])
		nameA = rulecomponents.event_query([rulecomponents.event_name("A")], None, None)
		nameBhostA = rulecomponents.event_query([rulecomponents.event_name("B"), rulecomponents.event_host(lambda **kwargs: "A")], None, None)
		nameB = rulecomponents.event_query([rulecomponents.event_name("B")], None, None)
		nameChostC = rulecomponents.event_query([rulecomponents.event_name("C"), rulecomponents.event_host(lambda **kwargs: "C")], None, None)
		nameC = rulecomponents.event_query([rulecomponents.event_name("C")], None, None)
		alphabet = rulecomponents.alphabet(sort_by="creation", symbols=[('f', nameA), ('o', nameBhostA), ('b', nameB), ('a', nameChostC), ('r', nameC)])
		alphabet2 = rulecomponents.alphabet(sort_by="arrival", symbols=[('f', nameA), ('o', nameBhostA), ('b', nameB), ('a', nameChostC), ('r', nameC)])
		self.assert_(alphabet(cache=cache)=="foobar")
		self.assert_(alphabet2(cache=cache)=="arboof") # not raboof, because the sorting of the two events with the same timestamp is not changed (see above)
示例#2
0
 def test_alphabet(self):
     cache = TestCache([
         event.Event(name="A", host="A", creation=1, arrival=6),
         event.Event(name="B", host="A", creation=2, arrival=5),
         event.Event(name="B", host="A", creation=3, arrival=4),
         event.Event(name="B", host="C", creation=4, arrival=3),
         event.Event(name="C", host="C", creation=5, arrival=2),
         event.Event(
             name="C", host="E", creation=5,
             arrival=2),  # note the timestamps -> sorting must be stable
     ])
     nameA = rulecomponents.event_query([rulecomponents.event_name("A")],
                                        None, None)
     nameBhostA = rulecomponents.event_query([
         rulecomponents.event_name("B"),
         rulecomponents.event_host(lambda **kwargs: "A")
     ], None, None)
     nameB = rulecomponents.event_query([rulecomponents.event_name("B")],
                                        None, None)
     nameChostC = rulecomponents.event_query([
         rulecomponents.event_name("C"),
         rulecomponents.event_host(lambda **kwargs: "C")
     ], None, None)
     nameC = rulecomponents.event_query([rulecomponents.event_name("C")],
                                        None, None)
     alphabet = rulecomponents.alphabet(sort_by="creation",
                                        symbols=[('f', nameA),
                                                 ('o', nameBhostA),
                                                 ('b', nameB),
                                                 ('a', nameChostC),
                                                 ('r', nameC)])
     alphabet2 = rulecomponents.alphabet(sort_by="arrival",
                                         symbols=[('f', nameA),
                                                  ('o', nameBhostA),
                                                  ('b', nameB),
                                                  ('a', nameChostC),
                                                  ('r', nameC)])
     self.assert_(alphabet(cache=cache) == "foobar")
     self.assert_(
         alphabet2(cache=cache) == "arboof"
     )  # not raboof, because the sorting of the two events with the same timestamp is not changed (see above)
示例#3
0
	def test_match_query(self):
		g = event.EventGenerator()
		events = g.randomEvents(100)
		events[42].host = "FOO"
		cache = TestCache(events)
		query = rulecomponents.event_query([rulecomponents.event_host(lambda **kwargs: "FOO")], None, "creation")
		queries = {"foo": {"bar": [query]}}
		rulemanager = TestRuleManager(queries = queries)
		match_query = rulecomponents.match_query("foo", "bar")
		evts = match_query(cache=cache, query_events=[], rulemanager=rulemanager)
		self.assert_(len(evts)==1)
		self.assert_(evts[0]==events[42])
示例#4
0
 def test_match_query(self):
     g = event.EventGenerator()
     events = g.randomEvents(100)
     events[42].host = "FOO"
     cache = TestCache(events)
     query = rulecomponents.event_query(
         [rulecomponents.event_host(lambda **kwargs: "FOO")], None,
         "creation")
     queries = {"foo": {"bar": [query]}}
     rulemanager = TestRuleManager(queries=queries)
     match_query = rulecomponents.match_query("foo", "bar")
     evts = match_query(cache=cache,
                        query_events=[],
                        rulemanager=rulemanager)
     self.assert_(len(evts) == 1)
     self.assert_(evts[0] == events[42])