#!/usr/bin/perl -T use lib '.'; use lib 't'; use SATest; use Test::More; plan skip_all => 'AWL SQL Tests not enabled.' if conf_bool('run_awl_sql_tests'); plan tests => 11; diag "Note: Failure may be due to an incorrect config"; sa_t_init("sql_based_whitelist"); my $dbconfig = ''; foreach my $setting (qw( user_awl_dsn user_awl_sql_username user_awl_sql_password user_awl_sql_table )) { my $val = conf($setting); $dbconfig .= "$setting $val\n" if $val; } my $testuser = 'tstusr.'.$$.'.'.time(); tstlocalrules (" use_auto_whitelist 1 auto_whitelist_factory Mail::SpamAssassin::SQLBasedAddrList $dbconfig user_awl_sql_override_username $testuser "); # --------------------------------------------------------------------------- %is_nonspam_patterns = ( q{ Subject: Re: [SAtalk] auto-whitelisting}, 'subj', ); %is_spam_patterns = ( q{Subject: 4000 Your Vacation Winning !}, 'subj', ); %is_spam_patterns2 = ( q{ X-Spam-Status: Yes}, 'status', ); %patterns = %is_nonspam_patterns; ok(sarun ("--remove-addr-from-whitelist whitelist_test\@whitelist.spamassassin.taint.org", \&patterns_run_cb)); # 3 times, to get into the whitelist: ok(sarun ("-L -t < data/nice/002", \&patterns_run_cb)); ok(sarun ("-L -t < data/nice/002", \&patterns_run_cb)); ok(sarun ("-L -t < data/nice/002", \&patterns_run_cb)); # Now check ok(sarun ("-L -t < data/nice/002", \&patterns_run_cb)); ok_all_patterns(); %patterns = %is_spam_patterns; ok(sarun ("-L -t < data/spam/004", \&patterns_run_cb)); ok_all_patterns(); %patterns = %is_spam_patterns2; ok(sarun ("-L -t < data/spam/007", \&patterns_run_cb)); ok_all_patterns(); ok(sarun ("--remove-addr-from-whitelist whitelist_test\@whitelist.spamassassin.taint.org", \&patterns_run_cb));