Skip to content

Commit ced091b

Browse files
author
Birger Schacht
committed
Add a testcase that tests if parenthesis work in the sieve language
Closes #1681 which asks for either parenthesis or nested if statements. Given that the former is already possible, the issue can be closed.
1 parent 7aa3c07 commit ced091b

File tree

2 files changed

+29
-0
lines changed

2 files changed

+29
-0
lines changed

intelmq/tests/bots/experts/sieve/test_expert.py

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -975,6 +975,32 @@ def test_numeric_key(self):
975975
self.run_bot()
976976
self.assertMessageEqual(0, numeric_match_true)
977977

978+
def test_parentheses(self):
979+
""" Test if parenthesis work"""
980+
self.sysconfig['file'] = os.path.join(os.path.dirname(__file__), 'test_sieve_files/test_parentheses.sieve')
981+
982+
# If doesn't match, nothing should have changed
983+
event1 = EXAMPLE_INPUT.copy()
984+
self.input_message = event1
985+
self.run_bot()
986+
self.assertMessageEqual(0, event1)
987+
988+
# If expression matches, destination.ip field is added
989+
event1['comment'] = 'add field'
990+
result = event1.copy()
991+
result['destination.ip'] = '150.50.50.10'
992+
self.input_message = event1
993+
self.run_bot()
994+
self.assertMessageEqual(0, result)
995+
996+
# If expression matches, destination.ip field is added
997+
event2 = EXAMPLE_INPUT.copy()
998+
event2['classification.taxonomy'] = 'vulnerable'
999+
result = event2.copy()
1000+
result['destination.ip'] = '150.50.50.10'
1001+
self.input_message = event2
1002+
self.run_bot()
1003+
self.assertMessageEqual(0, result)
9781004

9791005
if __name__ == '__main__': # pragma: no cover
9801006
unittest.main()
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
if (source.ip == '127.0.0.1') && (comment == 'add field' || classification.taxonomy == 'vulnerable') {
2+
add destination.ip="150.50.50.10"
3+
}

0 commit comments

Comments
 (0)