Skip to content

Commit

Permalink
make tests codes compitable with 1.0.0 api
Browse files Browse the repository at this point in the history
  • Loading branch information
garyelephant committed Sep 24, 2016
1 parent 1e74576 commit 814223c
Showing 1 changed file with 35 additions and 18 deletions.
53 changes: 35 additions & 18 deletions tests/test_pygrok.py
Original file line number Diff line number Diff line change
@@ -1,71 +1,83 @@
from pygrok import grok_match
from pygrok import Grok

def test_one_pat():
text = '1024'
pat = '%{INT:test_int}'
m = grok_match(text, pat)
grok = Grok(pat)
m = grok.match(text)
assert m['test_int'] == '1024', 'grok match failed:%s, %s' % (text, pat, )

text = '1024'
pat = '%{NUMBER:test_num}'
m = grok_match(text, pat)
grok = Grok(pat)
m = grok.match(text)
assert m['test_num'] == '1024', 'grok match failed:%s, %s' % (text, pat, )

text = 'garyelephant '
pat = '%{WORD:name} '
m = grok_match(text, pat)
grok = Grok(pat)
m = grok.match(text)
assert m['name'] == text.strip(), 'grok match failed:%s, %s' % (text, pat, )

text = '192.168.1.1'
pat = '%{IP:ip}'
m = grok_match(text, pat)
grok = Grok(pat)
m = grok.match(text)
assert m['ip'] == text.strip(), 'grok match failed:%s, %s' % (text, pat, )

text = 'github.com'
pat = '%{HOSTNAME:website}'
m = grok_match(text, pat)
grok = Grok(pat)
m = grok.match(text)
assert m['website'] == text.strip(), 'grok match failed:%s, %s' % (text, pat, )

text = '1989-11-04 05:33:02+0800'
pat = '%{TIMESTAMP_ISO8601:ts}'
m = grok_match(text, pat)
grok = Grok(pat)
m = grok.match(text)
assert m['ts'] == text.strip(), 'grok match failed:%s, %s' % (text, pat, )

text = 'github'
pat = '%{WORD}'
m = grok_match(text, pat)
grok = Grok(pat)
m = grok.match(text)
assert m == {}, 'grok match failed:%s, %s' % (text, pat, )
#you get nothing because variable name is not set, compare "%{WORD}" and "%{WORD:variable_name}"

text = 'github'
pat = '%{NUMBER:test_num}'
m = grok_match(text, pat)
grok = Grok(pat)
m = grok.match(text)
assert m is None, 'grok match failed:%s, %s' % (text, pat, )
#not match

text = '1989'
pat = '%{NUMBER:birthyear:int}'
m = grok_match(text, pat)
grok = Grok(pat)
m = grok.match(text)
assert m == {'birthyear': 1989}, 'grok match failed:%s, %s' % (text, pat, )


def test_multiple_pats():
text = 'gary 25 "never quit"'
pat = '%{WORD:name} %{INT:age} %{QUOTEDSTRING:motto}'
m = grok_match(text, pat)
grok = Grok(pat)
m = grok.match(text)
assert m['name'] == 'gary' and m['age'] == '25' and m['motto'] == '"never quit"', \
'grok match failed:%s, %s' % (text, pat, )

#variable names are not set
text = 'gary 25 "never quit"'
pat = '%{WORD} %{INT} %{QUOTEDSTRING}'
m = grok_match(text, pat)
grok = Grok(pat)
m = grok.match(text)
assert m == {}, 'grok match failed:%s, %s' % (text, pat, )

#"male" is not INT
text = 'gary male "never quit"'
pat = '%{WORD:name} %{INT:age} %{QUOTEDSTRING:motto}'
m = grok_match(text, pat)
grok = Grok(pat)
m = grok.match(text)
assert m is None, 'grok match failed:%s, %s' % (text, pat, )

#nginx log
Expand All @@ -76,7 +88,8 @@ def test_multiple_pats():
pat = '%{HOSTNAME:host} %{IP:client_ip} %{NUMBER:delay}s - \[%{DATA:time_stamp}\]' \
+ ' "%{WORD:verb} %{URIPATHPARAM:uri_path} HTTP/%{NUMBER:http_ver}" %{INT:http_status} %{INT:bytes} %{QS}' \
+ ' %{QS:client}'
m = grok_match(text, pat)
grok = Grok(pat)
m = grok.match(text)
assert m['host'] == 'edge.v.iask.com.edge.sinastorage.com' and m['client_ip'] == '14.18.243.65' \
and m['delay'] == '6.032' and m['time_stamp'] == '21/Jul/2014:16:00:02 +0800' and m['verb'] == 'GET' \
and m['uri_path'] == '/edge.v.iask.com/125880034.hlv' and m['http_ver'] == '1.0' \
Expand All @@ -86,19 +99,22 @@ def test_multiple_pats():

text = '1989/02/23'
pat = '%{NUMBER:birthyear:int}/%{NUMBER:birthmonth:int}/%{NUMBER:birthday:int}'
m = grok_match(text, pat)
grok = Grok(pat)
m = grok.match(text)
assert m == {'birthyear': 1989, 'birthmonth': 2, 'birthday': 23}, 'grok match failed:%s, %s' % (text, pat, )

text = 'load average: 1.88, 1.73, 1.49'
pat = 'load average: %{NUMBER:load_1:float}, %{NUMBER:load_2:float}, %{NUMBER:load_3:float}'
m = grok_match(text, pat)
grok = Grok(pat)
m = grok.match(text)
assert m == {'load_1': 1.88, 'load_2': 1.73, 'load_3': 1.49}, 'grok match failed:%s, %s' % (text, pat, )

def test_custom_pats():
custom_pats = {'ID' : '%{WORD}-%{INT}'}
text = 'Beijing-1104,gary 25 "never quit"'
pat = '%{ID:user_id},%{WORD:name} %{INT:age} %{QUOTEDSTRING:motto}'
m = grok_match(text, pat, custom_patterns = custom_pats)
grok = Grok(pat, custom_patterns = custom_pats)
m = grok.match(text)
assert m['user_id'] == 'Beijing-1104' and m['name'] == 'gary' and m['age'] == '25' \
and m['motto'] == '"never quit"', 'grok match failed:%s, %s' % (text, pat, )

Expand All @@ -109,7 +125,8 @@ def test_custom_pat_files():
text = 'Beijing-1104,gary 25 "never quit"'
#pattern "ID" is defined in ./test_patterns/pats
pat = '%{ID:user_id},%{WORD:name} %{INT:age} %{QUOTEDSTRING:motto}'
m = grok_match(text, pat, custom_patterns_dir = pats_dir)
grok = Grok(pat, custom_patterns_dir = pats_dir)
m = grok.match(text)
assert m['user_id'] == 'Beijing-1104' and m['name'] == 'gary' and m['age'] == '25' \
and m['motto'] == '"never quit"', 'grok match failed:%s, %s' % (text, pat, )

Expand Down

0 comments on commit 814223c

Please sign in to comment.