2017-12-16 18:59:33 +01:00
|
|
|
|
# pyruse is intended as a replacement to both fail2ban and epylog
|
2018-01-31 08:28:05 +01:00
|
|
|
|
# Copyright © 2017–2018 Y. Gablin
|
2017-12-16 18:59:33 +01:00
|
|
|
|
# Full licensing information in the LICENSE file, or gnu.org/licences/gpl-3.0.txt if the file is missing.
|
2017-12-15 19:36:50 +01:00
|
|
|
|
from pyruse.filters.filter_pcre import Filter
|
|
|
|
|
|
|
|
|
|
def whenMatchesThenTrue():
|
|
|
|
|
assert Filter({"field": "v", "re": "ok"}).filter({"v": "joke"})
|
|
|
|
|
|
|
|
|
|
def whenNoMatchThenFalse():
|
|
|
|
|
assert not Filter({"field": "v", "re": "ko"}).filter({"v": "Koala"})
|
|
|
|
|
|
|
|
|
|
def whenSaveThenGroupsInEntry():
|
|
|
|
|
entry = {"v": "yet another test"}
|
|
|
|
|
Filter({"field": "v", "re": "^(.).* .*(.)r .*(.).$", "save": [ "y", "e", "s" ]}).filter(entry)
|
|
|
|
|
assert entry["y"] + entry["e"] + entry["s"] == "yes"
|
|
|
|
|
|
|
|
|
|
def whenNamedGroupsThenFoundInEntry():
|
|
|
|
|
entry = {"v": "yet another test"}
|
|
|
|
|
Filter({"field": "v", "re": "^(?P<y>.).* .*(?P<e>.)r .*(?P<s>.).$"}).filter(entry)
|
|
|
|
|
assert entry["y"] + entry["e"] + entry["s"] == "yes"
|
2018-01-31 08:28:05 +01:00
|
|
|
|
|
|
|
|
|
def unitTests():
|
|
|
|
|
whenMatchesThenTrue()
|
|
|
|
|
whenNoMatchThenFalse()
|
|
|
|
|
whenSaveThenGroupsInEntry()
|
|
|
|
|
whenNamedGroupsThenFoundInEntry()
|