]> Sergey Matveev's repositories - public-inbox.git/blobdiff - t/watch_maildir_v2.t
remove most internal Email::MIME usage
[public-inbox.git] / t / watch_maildir_v2.t
index ccc85c173d078719083e6ef83075841f17817e96..19a2da7707085b6d536472bd8fbf8525cfbd51d8 100644 (file)
@@ -1,19 +1,16 @@
-# Copyright (C) 2018-2019 all contributors <meta@public-inbox.org>
+# Copyright (C) 2018-2020 all contributors <meta@public-inbox.org>
 # License: AGPL-3.0+ <https://www.gnu.org/licenses/agpl-3.0.txt>
+use strict;
 use Test::More;
-use File::Temp qw/tempdir/;
-use PublicInbox::MIME;
+use PublicInbox::Eml;
 use Cwd;
 use PublicInbox::Config;
-require './t/common.perl';
+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 Filesys::Notify::Simple));
 require PublicInbox::V2Writable;
-my $tmpdir = tempdir('watch_maildir-v2-XXXXXX', TMPDIR => 1, CLEANUP => 1);
+my ($tmpdir, $for_destroy) = tmpdir();
 my $inboxdir = "$tmpdir/v2";
 my $maildir = "$tmpdir/md";
 my $spamdir = "$tmpdir/spam";
@@ -21,10 +18,10 @@ use_ok 'PublicInbox::WatchMaildir';
 use_ok 'PublicInbox::Emergency';
 my $cfgpfx = "publicinbox.test";
 my $addr = 'test-public@example.com';
-my @cmd = ('blib/script/public-inbox-init', '-V2', 'test', $inboxdir,
+my @cmd = ('-init', '-V2', 'test', $inboxdir,
        'http://example.com/v2list', $addr);
 local $ENV{PI_CONFIG} = "$tmpdir/pi_config";
-is(system(@cmd), 0, 'public-inbox init OK');
+ok(run_script(\@cmd), 'public-inbox init OK');
 
 my $msg = <<EOF;
 From: user\@example.com
@@ -106,7 +103,7 @@ 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');
        }
-       ($nr, $msgs) = $srch->reopen->query('');
+       my ($nr, $msgs) = $srch->reopen->query('');
        is($nr, 0, 'inbox is still empty');
        is(unlink(glob("$maildir/new/*")), 1);
 }
@@ -119,7 +116,7 @@ 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');
-       ($nr, $msgs) = $srch->reopen->query('');
+       my ($nr, $msgs) = $srch->reopen->query('');
        is($nr, 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');
@@ -129,10 +126,10 @@ 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');
-       ($nr, $msgs) = $srch->reopen->query('dfpost:6e006fd7');
+       my ($nr, $msgs) = $srch->reopen->query('dfpost:6e006fd7');
        is($nr, 1, 'diff postimage found');
        my $post = $msgs->[0];
        ($nr, $msgs) = $srch->query('dfpre:090d998b6c2c');
@@ -145,7 +142,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 = <<EOF;
 $orig$v1pfx.address=$v1addr
 $v1pfx.inboxdir=$v1repo