X-Git-Url: http://www.git.stargrave.org/?a=blobdiff_plain;f=t%2Fwatch_maildir_v2.t;h=59ec247ecfda337f8c0412231fcafdcf2583b5d5;hb=b61b55643c617403f8d141cfe9bff22ad47913f7;hp=77e4b981f83515dbd4e107fc1029aac8fac97159;hpb=3c313f9034aac96182e2efdc2f92c40803626f32;p=public-inbox.git diff --git a/t/watch_maildir_v2.t b/t/watch_maildir_v2.t index 77e4b981..59ec247e 100644 --- a/t/watch_maildir_v2.t +++ b/t/watch_maildir_v2.t @@ -1,17 +1,14 @@ -# Copyright (C) 2018-2019 all contributors +# Copyright (C) 2018-2020 all contributors # License: AGPL-3.0+ use strict; use Test::More; -use PublicInbox::MIME; +use PublicInbox::Eml; use Cwd; use PublicInbox::Config; use PublicInbox::TestCommon; +use PublicInbox::Import; require_git(2.6); -my @mods = qw(Search::Xapian DBD::SQLite Filesys::Notify::Simple); -foreach my $mod (@mods) { - eval "require $mod"; - plan skip_all => "$mod missing for watch_maildir_v2.t" if $@; -} +require_mods(qw(Search::Xapian DBD::SQLite)); require PublicInbox::V2Writable; my ($tmpdir, $for_destroy) = tmpdir(); my $inboxdir = "$tmpdir/v2"; @@ -53,7 +50,7 @@ ok($ibx, 'found inbox by name'); my $srch = $ibx->search; PublicInbox::WatchMaildir->new($config)->scan('full'); -my ($total, undef) = $srch->reopen->query(''); +my $total = scalar @{$srch->reopen->query('')}; is($total, 1, 'got one revision'); # my $git = PublicInbox::Git->new("$inboxdir/git/0.git"); @@ -73,7 +70,8 @@ my $write_spam = sub { $write_spam->(); is(unlink(glob("$maildir/new/*")), 1, 'unlinked old spam'); PublicInbox::WatchMaildir->new($config)->scan('full'); -is(($srch->reopen->query(''))[0], 0, 'deleted file'); +is_deeply($srch->reopen->query(''), [], 'deleted file'); +is(unlink(glob("$spamdir/cur/*")), 1, 'unlinked trained spam'); # check with scrubbing { @@ -83,16 +81,17 @@ the body of a message to majordomo\@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html\n); PublicInbox::Emergency->new($maildir)->prepare(\$msg); PublicInbox::WatchMaildir->new($config)->scan('full'); - my ($nr, $msgs) = $srch->reopen->query(''); - is($nr, 1, 'got one file back'); + my $msgs = $srch->reopen->query(''); + is(scalar(@$msgs), 1, 'got one file back'); my $mref = $ibx->msg_by_smsg($msgs->[0]); like($$mref, qr/something\n\z/s, 'message scrubbed on import'); is(unlink(glob("$maildir/new/*")), 1, 'unlinked spam'); $write_spam->(); PublicInbox::WatchMaildir->new($config)->scan('full'); - ($nr, $msgs) = $srch->reopen->query(''); - is($nr, 0, 'inbox is empty again'); + $msgs = $srch->reopen->query(''); + is(scalar(@$msgs), 0, 'inbox is empty again'); + is(unlink(glob("$spamdir/cur/*")), 1, 'unlinked trained spam'); } { @@ -106,8 +105,8 @@ More majordomo info at http://vger.kernel.org/majordomo-info.html\n); local $SIG{__WARN__} = sub {}; # quiet spam check warning PublicInbox::WatchMaildir->new($config)->scan('full'); } - my ($nr, $msgs) = $srch->reopen->query(''); - is($nr, 0, 'inbox is still empty'); + my $msgs = $srch->reopen->query(''); + is(scalar(@$msgs), 0, 'inbox is still empty'); is(unlink(glob("$maildir/new/*")), 1); } @@ -119,8 +118,8 @@ More majordomo info at http://vger.kernel.org/majordomo-info.html\n); PublicInbox::Emergency->new($maildir)->prepare(\$msg); $config->{'publicinboxwatch.spamcheck'} = 'spamc'; PublicInbox::WatchMaildir->new($config)->scan('full'); - my ($nr, $msgs) = $srch->reopen->query(''); - is($nr, 1, 'inbox has one mail after spamc OK-ed a message'); + my $msgs = $srch->reopen->query(''); + is(scalar(@$msgs), 1, 'inbox has one mail after spamc OK-ed a message'); my $mref = $ibx->msg_by_smsg($msgs->[0]); like($$mref, qr/something\n\z/s, 'message scrubbed on import'); delete $config->{'publicinboxwatch.spamcheck'}; @@ -129,14 +128,14 @@ More majordomo info at http://vger.kernel.org/majordomo-info.html\n); { my $patch = 't/data/0001.patch'; open my $fh, '<', $patch or die "failed to open $patch: $!\n"; - $msg = eval { local $/; <$fh> }; + $msg = do { local $/; <$fh> }; PublicInbox::Emergency->new($maildir)->prepare(\$msg); PublicInbox::WatchMaildir->new($config)->scan('full'); - my ($nr, $msgs) = $srch->reopen->query('dfpost:6e006fd7'); - is($nr, 1, 'diff postimage found'); + my $msgs = $srch->reopen->query('dfpost:6e006fd7'); + is(scalar(@$msgs), 1, 'diff postimage found'); my $post = $msgs->[0]; - ($nr, $msgs) = $srch->query('dfpre:090d998b6c2c'); - is($nr, 1, 'diff preimage found'); + $msgs = $srch->query('dfpre:090d998b6c2c'); + is(scalar(@$msgs), 1, 'diff preimage found'); is($post->{blob}, $msgs->[0]->{blob}, 'same message'); } @@ -145,7 +144,7 @@ More majordomo info at http://vger.kernel.org/majordomo-info.html\n); my $v1repo = "$tmpdir/v1"; my $v1pfx = "publicinbox.v1"; my $v1addr = 'v1-public@example.com'; - is(system(qw(git init -q --bare), $v1repo), 0, 'v1 init OK'); + PublicInbox::Import::init_bare($v1repo); my $cfg2 = <new($maildir)->prepare(\$both); PublicInbox::WatchMaildir->new($config)->scan('full'); - my ($total, $msgs) = $srch->reopen->query('m:both@b.com'); + my $msgs = $srch->reopen->query('m:both@b.com'); my $v1 = $config->lookup_name('v1'); my $msg = $v1->git->cat_file($msgs->[0]->{blob}); is($both, $$msg, 'got original message back from v1');