From ea162515d6f096215237c46b55f9d5d3e370d02f Mon Sep 17 00:00:00 2001 From: Don Armstrong Date: Thu, 13 Feb 2020 19:22:52 -0800 Subject: [PATCH] support -done being set in a psuedoheader --- debian/changelog | 1 + scripts/process | 4 ++-- t/06_mail_handling.t | 18 +++++++++++++++++- 3 files changed, 20 insertions(+), 3 deletions(-) diff --git a/debian/changelog b/debian/changelog index 4fcec4d..acb7d12 100644 --- a/debian/changelog +++ b/debian/changelog @@ -2,6 +2,7 @@ debbugs (3.0.0~alpha.1) unstable; urgency=medium * Use Text::Xslate instead of Text::Template; Text::Xslate is significantly faster. + * Add support for a Done: psuedoheader (closes: #950133) -- Don Armstrong Fri, 09 Mar 2018 11:17:10 -0800 diff --git a/scripts/process b/scripts/process index 3da8f98..265bd58 100755 --- a/scripts/process +++ b/scripts/process @@ -241,7 +241,7 @@ for my $phline (@bodylines) push @control_bits,$fv; } else { # Don't lc owner or forwarded - $fv = lc $fv unless $fn =~ /^(?:owner|forwarded|usertags|version|source-version)$/; + $fv = lc $fv unless $fn =~ /^(?:owner|forwarded|usertags|version|source-version|done)$/; $pheader{$fn} = $fv; } print {$debugfh} ">$fn~$fv<\n"; @@ -390,7 +390,7 @@ if ($codeletter eq 'D' || $codeletter eq 'F') } $receivedat= "done\@$gEmailDomain"; $markaswhat= 'done'; - $set_done= $header{'from'}; + $set_done= $pheader{'done'} // $header{'from'}; if ( length( $gListDomain ) > 0 && length( $gDoneList ) > 0 ) { $generalcc= "$gDoneList\@$gListDomain"; push @generalcc, "$gDoneList\@$gListDomain"; diff --git a/t/06_mail_handling.t b/t/06_mail_handling.t index 0e42ed0..2f8f452 100644 --- a/t/06_mail_handling.t +++ b/t/06_mail_handling.t @@ -1,7 +1,7 @@ # -*- mode: cperl;-*- # $Id: 05_mail.t,v 1.1 2005/08/17 21:46:17 don Exp $ -use Test::More tests => 126; +use Test::More tests => 127; use warnings; use strict; @@ -113,6 +113,22 @@ my $status = read_bug(bug=>1); ok($status->{subject} eq 'new title','bug 1 retitled'); ok($status->{severity} eq 'wishlist','bug 1 wishlisted'); +# now check to see if we can close a bug using a psuedoheader done +send_message(to => '1-done@bugs.something', + headers => [To => 'control@bugs.something', + From => 'foo@bugs.something', + Subject => 'Munging a bug', + ], + body => <<'EOF') or fail 'message to control@bugs.something failed'; +Done: Me Developer + +I'm closing this bug for reasons +EOF + +$status = read_bug(bug=>1); +ok($status->{done} eq 'Me Developer '); + + # now we're going to go through and methododically test all of the control commands. my @control_commands = ( -- 2.39.2