Browse Source

[Test] statistics: per-user

pull/4789/head
Andrew Lewis 2 years ago
parent
commit
f72578cc22
  1. 15
      test/functional/cases/110_statistics/090-peruser.robot
  2. 0
      test/functional/cases/110_statistics/100-redis-keyed-siphash.robot
  3. 0
      test/functional/cases/110_statistics/110-redis-keyed-xxhash.robot
  4. 0
      test/functional/cases/110_statistics/200-redis-plain-siphash.robot
  5. 0
      test/functional/cases/110_statistics/210-redis-plain-xxhash.robot
  6. 52
      test/functional/cases/110_statistics/lib.robot
  7. 8
      test/functional/configs/stats.conf

15
test/functional/cases/110_statistics/090-peruser.robot

@ -0,0 +1,15 @@
*** Settings ***
Suite Setup Rspamd Redis Setup
Suite Teardown Rspamd Redis Teardown
Resource lib.robot
*** Variables ***
${RSPAMD_REDIS_SERVER} ${RSPAMD_REDIS_ADDR}:${RSPAMD_REDIS_PORT}
${RSPAMD_STATS_PER_USER} true
*** Test Cases ***
Learn
Learn Test test@example.com
Relearn
Relearn Test test@example.com

0
test/functional/cases/110_statistics/redis-keyed-siphash.robot → test/functional/cases/110_statistics/100-redis-keyed-siphash.robot

0
test/functional/cases/110_statistics/redis-keyed-xxhash.robot → test/functional/cases/110_statistics/110-redis-keyed-xxhash.robot

0
test/functional/cases/110_statistics/redis-plain-siphash.robot → test/functional/cases/110_statistics/200-redis-plain-siphash.robot

0
test/functional/cases/110_statistics/redis-plain-xxhash.robot → test/functional/cases/110_statistics/210-redis-plain-xxhash.robot

52
test/functional/cases/110_statistics/lib.robot

@ -4,15 +4,16 @@ Resource ${RSPAMD_TESTDIR}/lib/rspamd.robot
Variables ${RSPAMD_TESTDIR}/lib/vars.py
*** Variables ***
${CONFIG} ${RSPAMD_TESTDIR}/configs/stats.conf
${MESSAGE_HAM} ${RSPAMD_TESTDIR}/messages/ham.eml
${MESSAGE_SPAM} ${RSPAMD_TESTDIR}/messages/spam_message.eml
${REDIS_SCOPE} Suite
${RSPAMD_REDIS_SERVER} null
${RSPAMD_SCOPE} Suite
${RSPAMD_STATS_BACKEND} redis
${RSPAMD_STATS_HASH} null
${RSPAMD_STATS_KEY} null
${CONFIG} ${RSPAMD_TESTDIR}/configs/stats.conf
${MESSAGE_HAM} ${RSPAMD_TESTDIR}/messages/ham.eml
${MESSAGE_SPAM} ${RSPAMD_TESTDIR}/messages/spam_message.eml
${REDIS_SCOPE} Suite
${RSPAMD_REDIS_SERVER} null
${RSPAMD_SCOPE} Suite
${RSPAMD_STATS_BACKEND} redis
${RSPAMD_STATS_HASH} null
${RSPAMD_STATS_KEY} null
${RSPAMD_STATS_PER_USER} ${EMPTY}
*** Keywords ***
Broken Learn Test
@ -26,24 +27,41 @@ Empty Part Test
Scan File ${MESSAGE}
Expect Symbol BAYES_SPAM
Learn
[Arguments] ${user} ${class} ${message}
IF "${user}"
${result} = Run Rspamc -d ${user} -h ${RSPAMD_LOCAL_ADDR}:${RSPAMD_PORT_CONTROLLER} learn_${class} ${message}
ELSE
${result} = Run Rspamc -h ${RSPAMD_LOCAL_ADDR}:${RSPAMD_PORT_CONTROLLER} learn_${class} ${message}
END
Check Rspamc ${result}
Learn Test
[Arguments] ${user}=${EMPTY}
Set Suite Variable ${RSPAMD_STATS_LEARNTEST} 0
${result} = Run Rspamc -h ${RSPAMD_LOCAL_ADDR}:${RSPAMD_PORT_CONTROLLER} learn_spam ${MESSAGE_SPAM}
${result} = Run Rspamc -h ${RSPAMD_LOCAL_ADDR}:${RSPAMD_PORT_CONTROLLER} learn_ham ${MESSAGE_HAM}
Check Rspamc ${result}
Scan File ${MESSAGE_SPAM}
Set Test Variable ${kwargs} &{EMPTY}
IF "${user}"
Set To Dictionary ${kwargs} Deliver-To=${user}
END
Learn ${user} spam ${MESSAGE_SPAM}
Learn ${user} ham ${MESSAGE_HAM}
Scan File ${MESSAGE_SPAM} &{kwargs}
Expect Symbol BAYES_SPAM
Scan File ${MESSAGE_HAM}
Scan File ${MESSAGE_HAM} &{kwargs}
Expect Symbol BAYES_HAM
Set Suite Variable ${RSPAMD_STATS_LEARNTEST} 1
Relearn Test
[Arguments] ${user}=${EMPTY}
IF ${RSPAMD_STATS_LEARNTEST} == 0
Fail "Learn test was not run"
END
${result} = Run Rspamc -h ${RSPAMD_LOCAL_ADDR}:${RSPAMD_PORT_CONTROLLER} learn_ham ${MESSAGE_SPAM}
Check Rspamc ${result}
Scan File ${MESSAGE_SPAM}
Learn ${user} ham ${MESSAGE_SPAM}
Set Test Variable ${kwargs} &{EMPTY}
IF "${user}"
Set To Dictionary ${kwargs} Deliver-To=${user}
END
Scan File ${MESSAGE_SPAM} &{kwargs}
${pass} = Run Keyword And Return Status Expect Symbol BAYES_HAM
IF ${pass}
Pass Execution What Me Worry

8
test/functional/configs/stats.conf

@ -71,6 +71,14 @@ classifier {
cache {
server = {= env.REDIS_SERVER =}
}
{% if env.STATS_PER_USER ~= '' %}
per_user = <<EOD
return function(task)
return task:get_principal_recipient()
end
EOD;
{% endif %}
}
lua = "{= env.TESTDIR =}/lua/test_coverage.lua";

Loading…
Cancel
Save