Ejemplo n.º 1
0
 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'])
Ejemplo n.º 3
0
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'])
Ejemplo n.º 4
0
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()
Ejemplo n.º 6
0
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)
Ejemplo n.º 7
0
 def setUp(self):
     self.grok = Grok()
Ejemplo n.º 8
0
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)