def test_simple(self): ps = ParseFacts() ps.parseLine("extend(\"compressed @@@\")") rl = RuleEngine() rl.initFactsDict(ps) clog1 = CompressedLog("compressed @@@") clog1.setDiffWordsSet({1}) clog2 = CompressedLog("compressed2 @@@") clog2.setDiffWordsSet({1}) rawlog1 = RawLog(date=datetime.datetime.now(),log="compressed a") rawlog2 = RawLog(date=datetime.datetime.now(),log="compressed b") rawlog3 = RawLog(date=datetime.datetime.now(),log="compressed2 a") rawlog4 = RawLog(date=datetime.datetime.now(),log="compressed2 b") clog1.rawlogs.append(rawlog1) clog1.rawlogs.append(rawlog2) clog2.rawlogs.append(rawlog3) clog2.rawlogs.append(rawlog4) [date1,logmessage1] = rl.filterLog(rawlog1) [date2,logmessage2] = rl.filterLog(rawlog2) [date3,logmessage3] = rl.filterLog(rawlog3) [date4,logmessage4] = rl.filterLog(rawlog4) self.assertEqual("compressed a",logmessage1) self.assertEqual("compressed b",logmessage2) self.assertEqual("compressed2 @@@",logmessage3) self.assertEqual("compressed2 @@@",logmessage4)
def test_parsing_simple(self): pf = ParseFacts() pf.parseLine("extend(\"lol kind of shit\", \"arg nr 1\", \"arg nr 2\")") fact = pf.knowledgelist[0] self.assertEqual(fact.factname,"extend") self.assertEqual(fact.arglist[0],"lol kind of shit") self.assertEqual(fact.arglist[1],"arg nr 1") self.assertEqual(fact.arglist[2],"arg nr 2")
def test_regexp(self): ps = ParseFacts() ps.parseLine("default(\"remove\")") ps.parseLine("clogregexp(\" Start proc.*\")") rl = RuleEngine() rl.initFactsDict(ps) clog_false_str = " End pro @@@ @@@" clog_true_str = " Start proc @@@ @@@" rawlog_false = self.create_log_and_clog(" End pro blabla bla", clog_false_str,[3,4]) rawlog_true = self.create_log_and_clog(" Start proc blabla bla", clog_true_str,[3,4]) none_result = rl.filterLog(rawlog_false) [date2,logmessage_true] = rl.filterLog(rawlog_true) self.assertEqual(None,none_result) self.assertEqual(logmessage_true,logmessage_true)
def test_QmarkInedxes(self): ps = ParseFacts() indexes = ps.findWithOutSpecialQuestionMarks("\"arg1\",\"arg2 this is\\\"not funny\\\"\"") self.assertEqual(indexes,[0,5,7,33])