]> source.dussan.org Git - rspamd.git/commitdiff
[Test] Add test for composites with symbol groups 2618/head
authorAlexander Moisseev <moiseev@mezonplus.ru>
Tue, 30 Oct 2018 18:56:22 +0000 (21:56 +0300)
committerAlexander Moisseev <moiseev@mezonplus.ru>
Tue, 30 Oct 2018 19:55:41 +0000 (22:55 +0300)
test/functional/cases/109_composites.robot
test/functional/configs/composites.conf
test/functional/lua/composites.lua

index 94c9f58ee90e1ec04390b9a5ae49e09d499453e8..d24c505e94d4692be501310260cb5e1b6c0db494 100644 (file)
@@ -14,7 +14,7 @@ ${RSPAMD_SCOPE}  Suite
 *** Test Cases ***
 Composites - Score
   ${result} =  Scan Message With Rspamc  ${MESSAGE}
-  Check Rspamc  ${result}  ${SPACE}46.00 / 0.00
+  Check Rspamc  ${result}  ${SPACE}50.00 / 0.00
 
 Composites - Expressions
   ${result} =  Scan Message With Rspamc  ${MESSAGE}
@@ -55,3 +55,11 @@ Composites - Default policy: leave
   Check Rspamc  ${result}  DEFAULT_POLICY_LEAVE (5.00)
   Should Contain  ${result.stdout}  DEFAULT_POLICY_LEAVE_A (1.00)
   Should Contain  ${result.stdout}  DEFAULT_POLICY_LEAVE_B (1.00)
+
+Composites - Symbol groups
+  ${result} =  Scan Message With Rspamc  ${MESSAGE}
+  Check Rspamc  ${result}  SYMBOL_GROUPS (5.00)
+  Should Contain  ${result.stdout}  POSITIVE_A (-1.00)
+  Should Contain  ${result.stdout}  ANY_A (-1.00)
+  Should Contain  ${result.stdout}  NEGATIVE_B (1.00)
+  Should Not Contain  ${result.stdout}  NEGATIVE_A
index 3b281fc579eb8dc0910086614c8b1c5f775c2651..8b79d5ae7fcb86bbcbdb9dd207d59a7729c77425 100644 (file)
@@ -61,4 +61,9 @@ composites {
         score = 5.0;
         policy = "leave";
     }
+
+    SYMBOL_GROUPS {
+        expression = "!g+:positive & g-:negative & -g:any";
+        score = 5.0;
+    }
 }
index de4642c3b24b60f4772d719462205d556fb353c6..66d595cd8b21da555e4c0a8baf14633b8f07b10e 100644 (file)
@@ -91,3 +91,36 @@ rspamd_config:register_symbol({
     return true, 'Fires always'
   end
 })
+
+rspamd_config:register_symbol({
+  name = 'POSITIVE_A',
+  score = -1.0,
+  group = "positive",
+  callback = function()
+    return true, 'Fires always'
+  end
+})
+rspamd_config:register_symbol({
+  name = 'NEGATIVE_A',
+  score = -1.0,
+  group = "negative",
+  callback = function()
+    return true, 'Fires always'
+  end
+})
+rspamd_config:register_symbol({
+  name = 'NEGATIVE_B',
+  score = 1.0,
+  group = "negative",
+  callback = function()
+    return true, 'Fires always'
+  end
+})
+rspamd_config:register_symbol({
+  name = 'ANY_A',
+  score = -1.0,
+  group = "any",
+  callback = function()
+    return true, 'Fires always'
+  end
+})