X-Git-Url: http://www.git.stargrave.org/?a=blobdiff_plain;f=t%2Fmda.t;h=fdba967204c310b333e406aa3f687776e5963be7;hb=23a4e44bedabe5b8b651346cabc2a870c5377a30;hp=03bad8715876f40ac8d85e64af7e9c7be9938749;hpb=5cddfa50765d59157e15488c235fe01202db0972;p=public-inbox.git diff --git a/t/mda.t b/t/mda.t index 03bad871..fdba9672 100644 --- a/t/mda.t +++ b/t/mda.t @@ -8,6 +8,7 @@ use Email::Filter; use File::Temp qw/tempdir/; use Cwd; use IPC::Run qw(run); +use PublicInbox::MID qw(mid2path); my $mda = "blib/script/public-inbox-mda"; my $learn = "blib/script/public-inbox-learn"; @@ -47,6 +48,7 @@ my $mime; local $ENV{GIT_COMMITTER_NAME} = eval { use PublicInbox::MDA; + use PublicInbox::Address; use Encode qw/encode/; my $mbox = 't/utf8.mbox'; open(my $fh, '<', $mbox) or die "failed to open mbox: $mbox\n"; @@ -54,7 +56,12 @@ local $ENV{GIT_COMMITTER_NAME} = eval { close $fh; my $msg = Email::Filter->new(data => $str); $msg = Email::MIME->new($msg->simple->as_string); - my ($author, $email, $date) = PublicInbox::MDA->author_info($msg); + + my $from = $msg->header('From'); + my $author = PublicInbox::Address::from_name($from); + my ($email) = PublicInbox::Address::emails($from); + my $date = $msg->header('Date'); + is('Eléanor', encode('us-ascii', my $tmp = $author, Encode::HTMLCREF), 'HTML conversion is correct'); @@ -85,11 +92,10 @@ EOF { local $ENV{PATH} = $main_path; run([$mda], \$in); - local $ENV{GIT_DIR} = $maindir; - my $rev = `git rev-list HEAD`; + my $rev = `git --git-dir=$maindir rev-list HEAD`; like($rev, qr/\A[a-f0-9]{40}/, "good revision committed"); chomp $rev; - my $cmt = `git cat-file commit $rev`; + my $cmt = `git --git-dir=$maindir cat-file commit $rev`; like($cmt, qr/^author Me 0 \+0000\n/m, "author info set correctly"); like($cmt, qr/^committer test /m, @@ -102,8 +108,7 @@ EOF ok(!-e $failbox, "nothing in PI_EMERGENCY before"); local $ENV{PATH} = $fail_path; run([$mda], \$in); - local $ENV{GIT_DIR} = $maindir; - my @revs = `git rev-list HEAD`; + my @revs = `git --git-dir=$maindir rev-list HEAD`; is(scalar @revs, 1, "bad revision not committed"); ok(-s $failbox > 0, "PI_EMERGENCY is written to"); } @@ -174,7 +179,8 @@ EOF { # deliver the spam message, first run([$mda], \$in); - my $msg = `ssoma cat $mid $maindir`; + my $path = mid2path($mid); + my $msg = `git --git-dir=$maindir cat-file blob HEAD:$path`; like($msg, qr/\Q$mid\E/, "message delivered"); # now train it @@ -212,7 +218,8 @@ EOF run([$learn, "ham"], \$in); is($?, 0, "learned ham without failure"); - my $msg = `ssoma cat $mid $maindir`; + my $path = mid2path($mid); + my $msg = `git --git-dir=$maindir cat-file blob HEAD:$path`; like($msg, qr/\Q$mid\E/, "ham message delivered"); run([$learn, "ham"], \$in); is($?, 0, "learned ham idempotently "); @@ -251,7 +258,8 @@ EOF $in = $mime->as_string; run([$learn, "ham"], \$in); is($?, 0, "learned ham without failure"); - $msg = `ssoma cat $mid $maindir`; + my $path = mid2path($mid); + $msg = `git --git-dir=$maindir cat-file blob HEAD:$path`; like($msg, qr/<\Q$mid\E>/, "ham message delivered"); unlike($msg, qr//i, ' filtered'); } @@ -320,8 +328,7 @@ sub fail_bad_header { my ($out, $err) = ("", ""); local $ENV{PATH} = $main_path; run([$mda], \$in, \$out, \$err); - local $ENV{GIT_DIR} = $maindir; - my $rev = `git rev-list HEAD`; + my $rev = `git --git-dir=$maindir rev-list HEAD`; chomp $rev; is($rev, $good_rev, "bad revision not commited ($msg)"); ok(-s $failbox > 0, "PI_EMERGENCY is written to ($msg)");