def make_groks(self, patterns): groks = [] for pattern in patterns: grok = Grok() grok.add_base_patterns() grok.compile(pattern) groks.append(grok) return groks
class GrokAddPatternTest(TestCase): def setUp(self): self.grok = Grok() def test_adds_a_single_pattern(self): self.grok.add_pattern('name', '%{PATTERN}') self.assertTrue('name' in self.grok.patterns) self.assertEquals('%{PATTERN}', self.grok.patterns['name']) self.assertEquals(1, len(self.grok.patterns.keys())) def test_adds_patterns_from_file(self): self.grok.add_patterns_from_file('tests/test-patterns/base') self.assertEquals(2, len(self.grok.patterns.keys())) self.assertTrue('INT' in self.grok.patterns) self.assertTrue('(?:[+-]?(?:[0-9]+))' == self.grok.patterns['INT']) self.assertTrue('BASE10NUM' in self.grok.patterns) self.assertTrue('(?<![0-9.+-])(?>[+-]?(?:(?:[0-9]+(?:\.[0-9]+)?)|(?:\.[0-9]+)))' == self.grok.patterns['BASE10NUM'])
class GrokAddPatternTest(TestCase): def setUp(self): self.grok = Grok() def test_adds_a_single_pattern(self): self.grok.add_pattern('name', '%{PATTERN}') self.assertTrue('name' in self.grok.patterns) self.assertEquals('%{PATTERN}', self.grok.patterns['name']) self.assertEquals(1, len(self.grok.patterns.keys())) def test_adds_patterns_from_file(self): self.grok.add_patterns_from_file('tests/test-patterns/base') self.assertEquals(2, len(self.grok.patterns.keys())) self.assertTrue('INT' in self.grok.patterns) self.assertTrue('(?:[+-]?(?:[0-9]+))' == self.grok.patterns['INT']) self.assertTrue('BASE10NUM' in self.grok.patterns) self.assertTrue( '(?<![0-9.+-])(?>[+-]?(?:(?:[0-9]+(?:\.[0-9]+)?)|(?:\.[0-9]+)))' == self.grok.patterns['BASE10NUM'])
class GrokAddPatternTest(unittest.TestCase): def setUp(self): self.grok = Grok() def test_parses_ISO8601_successfully(self): self.grok.add_patterns_from_file('patterns/base') date = '2010-04-18T15:06:02Z' pattern = '%{TIMESTAMP_ISO8601}' self.compile(pattern) self.assertTrue("%{YEAR}-%{MONTHNUM}-%{MONTHDAY}[T ]%{HOUR}:?%{MINUTE}(?::?%{SECOND})?%{ISO8601_TIMEZONE}?" == self.grok.extended_pattern) self.assertTrue(selg.grok.match(date)) def test_parses_ISO8601_successfully(self): self.grok.add_patterns_from_file('patterns/base') string = "http://www.google.com/ and 00:de:ad:be:ef:00 with 'Something Nice'" pattern = self.grok.discover(string) self.assertTrue("%{MAC}" == pattern)
def setUp(self): self.grok = Grok()
class TestGrokCompile(unittest.TestCase): def setUp(self): self.grok = Grok() def test_compile_no_matches(self): self.grok.add_pattern("PATTERN", "[a-zA-Z]") pattern = "no pattern to see, move along" self.grok.compile(pattern) self.assertEquals(pattern, self.grok.expanded_pattern) def test_compile_pattern_not_found(self): self.grok.add_pattern("PATTERN", "[a-zA-Z]") pattern = "%{OTHERPATTERN}" with self.assertRaises(PatternException): self.grok.compile(pattern) def test_compile_single_match(self): self.grok.add_pattern("PATTERN", "[a-zA-Z]") pattern = "[a-z]%{PATTERN}" self.grok.compile(pattern) self.assertEquals("[a-z][a-zA-Z]", self.grok.expanded_pattern) def test_compile_max_recursion(self): self.grok.add_pattern("PATTERN", "%{PATTERN}") pattern = "%{PATTERN}" with self.assertRaises(PatternMaxRecursionException): self.grok.compile(pattern)
class TestGrokCompile(unittest.TestCase): def setUp(self): self.grok = Grok() def test_compile_no_matches(self): self.grok.add_pattern('PATTERN', '[a-zA-Z]') pattern = 'no pattern to see, move along' self.grok.compile(pattern) self.assertEquals(pattern, self.grok.expanded_pattern) def test_compile_pattern_not_found(self): self.grok.add_pattern('PATTERN', '[a-zA-Z]') pattern = '%{OTHERPATTERN}' with self.assertRaises(PatternException): self.grok.compile(pattern) def test_compile_single_match(self): self.grok.add_pattern('PATTERN', '[a-zA-Z]') pattern = '[a-z]%{PATTERN}' self.grok.compile(pattern) self.assertEquals('[a-z][a-zA-Z]', self.grok.expanded_pattern) def test_compile_max_recursion(self): self.grok.add_pattern('PATTERN', '%{PATTERN}') pattern = '%{PATTERN}' with self.assertRaises(PatternMaxRecursionException): self.grok.compile(pattern)