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)
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)
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)
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)
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)
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)
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)
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)