예제 #1
0
	def test_event_name(self):
		g = event.EventGenerator()
		events = g.randomEvents(100)
		for i in range(15):
			events[i].name = "FOO"
		name_is_FOO = rulecomponents.event_name("FOO")
		self.assert_(len(name_is_FOO(query_events=events))==15)
예제 #2
0
 def test_event_name(self):
     g = event.EventGenerator()
     events = g.randomEvents(100)
     for i in range(15):
         events[i].name = "FOO"
     name_is_FOO = rulecomponents.event_name("FOO")
     self.assert_(len(name_is_FOO(query_events=events)) == 15)
예제 #3
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)
예제 #4
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)
예제 #5
0
	def test_trigger_match(self):
		g = event.EventGenerator()
		e = g.randomEvent()
		e.host = "FOO"
		e.name = "BAR"
		host_is_foo = rulecomponents.event_host(lambda **kwargs: "FOO")
		name_is_bar = rulecomponents.event_name("BAR")
		both = rulecomponents.trigger_match([host_is_foo, name_is_bar])
		none = rulecomponents.trigger_match([])
		self.assert_(both(trigger=e)==True)
		self.assert_(none(trigger=e)==True)
		e.name = "FOO"
		self.assert_(both(trigger=e)==False)
예제 #6
0
 def test_trigger_match(self):
     g = event.EventGenerator()
     e = g.randomEvent()
     e.host = "FOO"
     e.name = "BAR"
     host_is_foo = rulecomponents.event_host(lambda **kwargs: "FOO")
     name_is_bar = rulecomponents.event_name("BAR")
     both = rulecomponents.trigger_match([host_is_foo, name_is_bar])
     none = rulecomponents.trigger_match([])
     self.assert_(both(trigger=e) == True)
     self.assert_(none(trigger=e) == True)
     e.name = "FOO"
     self.assert_(both(trigger=e) == False)
예제 #7
0
	def test_union(self):
		g = event.EventGenerator()
		events = g.randomEvents(100)
		for i in range(15):
			events[i].host = "FOO"
		for i in range(5,20):
			events[i].name = "BAR"
		host_is_foo = rulecomponents.event_host(lambda **kwargs: "FOO")
		name_is_bar = rulecomponents.event_name("BAR")
		both = rulecomponents.union([host_is_foo, name_is_bar])
		all = rulecomponents.union([])
		self.assert_(len(both(query_events=events))==20)
		self.assert_(sorted(both(query_events=events))==sorted(events[0:20]))
		self.assert_(len(all(query_events=events))==100)
예제 #8
0
 def test_union(self):
     g = event.EventGenerator()
     events = g.randomEvents(100)
     for i in range(15):
         events[i].host = "FOO"
     for i in range(5, 20):
         events[i].name = "BAR"
     host_is_foo = rulecomponents.event_host(lambda **kwargs: "FOO")
     name_is_bar = rulecomponents.event_name("BAR")
     both = rulecomponents.union([host_is_foo, name_is_bar])
     all = rulecomponents.union([])
     self.assert_(len(both(query_events=events)) == 20)
     self.assert_(sorted(both(query_events=events)) == sorted(events[0:20]))
     self.assert_(len(all(query_events=events)) == 100)