]> Sergey Matveev's repositories - public-inbox.git/blobdiff - t/watch_maildir.t
www: drop --subject from "git send-email" instructions
[public-inbox.git] / t / watch_maildir.t
index c44273f051902afe94694832ca4f6a5f3652c3bc..e0719f541ac76c7fcc0496db0b90618271cf08da 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (C) 2016-2020 all contributors <meta@public-inbox.org>
+# Copyright (C) 2016-2021 all contributors <meta@public-inbox.org>
 # License: AGPL-3.0+ <https://www.gnu.org/licenses/agpl-3.0.txt>
 use strict;
 use Test::More;
@@ -11,10 +11,11 @@ my ($tmpdir, $for_destroy) = tmpdir();
 my $git_dir = "$tmpdir/test.git";
 my $maildir = "$tmpdir/md";
 my $spamdir = "$tmpdir/spam";
-use_ok 'PublicInbox::WatchMaildir';
+use_ok 'PublicInbox::Watch';
 use_ok 'PublicInbox::Emergency';
 my $cfgpfx = "publicinbox.test";
 my $addr = 'test-public@example.com';
+my $default_branch = PublicInbox::Import::default_branch;
 PublicInbox::Import::init_bare($git_dir);
 
 my $msg = <<EOF;
@@ -34,13 +35,13 @@ my $sem = PublicInbox::Emergency->new($spamdir); # create dirs
 {
        my @w;
        local $SIG{__WARN__} = sub { push @w, @_ };
-       my $config = PublicInbox::Config->new(\<<EOF);
+       my $cfg = PublicInbox::Config->new(\<<EOF);
 $cfgpfx.address=$addr
 $cfgpfx.inboxdir=$git_dir
 $cfgpfx.watch=maildir:$spamdir
 publicinboxlearn.watchspam=maildir:$spamdir
 EOF
-       my $wm = PublicInbox::WatchMaildir->new($config);
+       my $wm = PublicInbox::Watch->new($cfg);
        is(scalar grep(/is a spam folder/, @w), 1, 'got warning about spam');
        is_deeply($wm->{mdmap}, { "$spamdir/cur" => 'watchspam' },
                'only got the spam folder to watch');
@@ -61,10 +62,10 @@ EOF
        close $fh or BAIL_OUT $!;
 }
 
-my $config = PublicInbox::Config->new($cfg_path);
-PublicInbox::WatchMaildir->new($config)->scan('full');
+my $cfg = PublicInbox::Config->new($cfg_path);
+PublicInbox::Watch->new($cfg)->scan('full');
 my $git = PublicInbox::Git->new($git_dir);
-my @list = $git->qx(qw(rev-list refs/heads/master));
+my @list = $git->qx('rev-list', $default_branch);
 is(scalar @list, 1, 'one revision in rev-list');
 
 my $write_spam = sub {
@@ -79,10 +80,10 @@ my $write_spam = sub {
 };
 $write_spam->();
 is(unlink(glob("$maildir/new/*")), 1, 'unlinked old spam');
-PublicInbox::WatchMaildir->new($config)->scan('full');
-@list = $git->qx(qw(rev-list refs/heads/master));
+PublicInbox::Watch->new($cfg)->scan('full');
+@list = $git->qx('rev-list', $default_branch);
 is(scalar @list, 2, 'two revisions in rev-list');
-@list = $git->qx(qw(ls-tree -r --name-only refs/heads/master));
+@list = $git->qx('ls-tree', '-r', '--name-only', $default_branch);
 is(scalar @list, 0, 'tree is empty');
 is(unlink(glob("$spamdir/cur/*")), 1, 'unlinked trained spam');
 
@@ -93,18 +94,18 @@ To unsubscribe from this list: send the line "unsubscribe git" in
 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');
-       @list = $git->qx(qw(ls-tree -r --name-only refs/heads/master));
+       PublicInbox::Watch->new($cfg)->scan('full');
+       @list = $git->qx('ls-tree', '-r', '--name-only', $default_branch);
        is(scalar @list, 1, 'tree has one file');
        my $mref = $git->cat_file('HEAD:'.$list[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');
-       @list = $git->qx(qw(ls-tree -r --name-only refs/heads/master));
+       PublicInbox::Watch->new($cfg)->scan('full');
+       @list = $git->qx('ls-tree', '-r', '--name-only', $default_branch);
        is(scalar @list, 0, 'tree is empty');
-       @list = $git->qx(qw(rev-list refs/heads/master));
+       @list = $git->qx('rev-list', $default_branch);
        is(scalar @list, 4, 'four revisions in rev-list');
        is(unlink(glob("$spamdir/cur/*")), 1, 'unlinked trained spam');
 }
@@ -115,12 +116,12 @@ More majordomo info at  http://vger.kernel.org/majordomo-info.html\n);
        my $fail_path = "$fail_bin:$ENV{PATH}"; # for spamc ham mock
        local $ENV{PATH} = $fail_path;
        PublicInbox::Emergency->new($maildir)->prepare(\$msg);
-       $config->{'publicinboxwatch.spamcheck'} = 'spamc';
+       $cfg->{'publicinboxwatch.spamcheck'} = 'spamc';
        {
                local $SIG{__WARN__} = sub {}; # quiet spam check warning
-               PublicInbox::WatchMaildir->new($config)->scan('full');
+               PublicInbox::Watch->new($cfg)->scan('full');
        }
-       @list = $git->qx(qw(ls-tree -r --name-only refs/heads/master));
+       @list = $git->qx('ls-tree', '-r', '--name-only', $default_branch);
        is(scalar @list, 0, 'tree has no files spamc checked');
        is(unlink(glob("$maildir/new/*")), 1);
 }
@@ -131,17 +132,17 @@ More majordomo info at  http://vger.kernel.org/majordomo-info.html\n);
        my $main_path = "$main_bin:$ENV{PATH}"; # for spamc ham mock
        local $ENV{PATH} = $main_path;
        PublicInbox::Emergency->new($maildir)->prepare(\$msg);
-       $config->{'publicinboxwatch.spamcheck'} = 'spamc';
-       @list = $git->qx(qw(ls-tree -r --name-only refs/heads/master));
-       PublicInbox::WatchMaildir->new($config)->scan('full');
-       @list = $git->qx(qw(ls-tree -r --name-only refs/heads/master));
+       $cfg->{'publicinboxwatch.spamcheck'} = 'spamc';
+       @list = $git->qx('ls-tree', '-r', '--name-only', $default_branch);
+       PublicInbox::Watch->new($cfg)->scan('full');
+       @list = $git->qx('ls-tree', '-r', '--name-only', $default_branch);
        is(scalar @list, 1, 'tree has one file after spamc checked');
 
        # XXX: workaround some weird caching/memoization in cat-file,
        # shouldn't be an issue in real-world use, though...
        $git = PublicInbox::Git->new($git_dir);
 
-       my $mref = $git->cat_file('refs/heads/master:'.$list[0]);
+       my $mref = $git->cat_file($default_branch.':'.$list[0]);
        like($$mref, qr/something\n\z/s, 'message scrubbed on import');
 }
 
@@ -166,9 +167,9 @@ More majordomo info at  http://vger.kernel.org/majordomo-info.html\n);
                $delivered++;
        };
        PublicInbox::DS->Reset;
-       my $ii = PublicInbox::InboxIdle->new($config);
+       my $ii = PublicInbox::InboxIdle->new($cfg);
        my $obj = bless \$cb, 'PublicInbox::TestCommon::InboxWakeup';
-       $config->each_inbox(sub { $_[0]->subscribe_unlock('ident', $obj) });
+       $cfg->each_inbox(sub { $_[0]->subscribe_unlock('ident', $obj) });
        PublicInbox::DS->SetPostLoopCallback(sub { $delivered == 0 });
 
        # wait for -watch to setup inotify watches
@@ -199,7 +200,7 @@ More majordomo info at  http://vger.kernel.org/majordomo-info.html\n);
 
        $em->commit; # wake -watch up
        diag 'waiting for -watch to import new message';
-       PublicInbox::DS->EventLoop;
+       PublicInbox::DS::event_loop();
        $wm->kill;
        $wm->join;
        $ii->close;
@@ -211,7 +212,7 @@ More majordomo info at  http://vger.kernel.org/majordomo-info.html\n);
 
 sub is_maildir {
        my ($dir) = @_;
-       PublicInbox::WatchMaildir::is_maildir($dir);
+       PublicInbox::Watch::is_maildir($dir);
 }
 
 is(is_maildir('maildir:/hello//world'), '/hello/world', 'extra slash gone');