# -*- mode: cperl;-*-
-use Test::More tests => 35;
+use Test::More;
use warnings;
use strict;
# HTTP::Server:::Simple defines a SIG{CHLD} handler that breaks system; undef it here.
$SIG{CHLD} = sub {};
-my %config;
-eval {
- %config = create_debbugs_configuration();
-};
-if ($@) {
- BAIL_OUT($@);
-}
+my %config = create_debbugs_configuration();
+
my $sendmail_dir = $config{sendmail_dir};
my $spool_dir = $config{spool_dir};
},
);
-test_control_commands(@control_commands);
+test_control_commands(\%config,
+ @control_commands);
send_message(to => 'control@bugs.something',
headers => [To => 'control@bugs.something',
fixed -5 1.2-6
thanks
EOF
- ;
- $SD_SIZE =
- num_messages_sent($SD_SIZE,1,
- $sendmail_dir,
- 'control@bugs.something messages appear to have been sent out properly');
-
-test_control_commands(forcemerge => {command => 'forcemerge',
- value => '1 2',
+test_control_commands(\%config,
+ forcemerge => {command => 'forcemerge',
+ value => "2 3\nseverity 2 minor",
status_key => 'mergedwith',
- status_value => '2',
+ status_value => '3',
+ bug => 2,
},
unmerge => {command => 'unmerge',
- value => '1',
+ value => '2',
status_key => 'mergedwith',
status_value => '',
+ bug => 2,
},
forcemerge => {command => 'forcemerge',
value => '1 2 5',
},
);
-
-sub test_control_commands{
- my @commands = @_;
-
- while (my ($command,$control_command) = splice(@commands,0,2)) {
- # just check to see that control doesn't explode
- $control_command->{value} = " $control_command->{value}" if length $control_command->{value}
- and $control_command->{value} !~ /^\s/;
- send_message(to => 'control@bugs.something',
- headers => [To => 'control@bugs.something',
- From => 'foo@bugs.something',
- Subject => "Munging a bug with $command",
- ],
- body => <<EOF) or fail 'message to control@bugs.something failed';
-debug 10
-$control_command->{command} $control_command->{value}
-thanks
-EOF
- ;
- $SD_SIZE =
- num_messages_sent($SD_SIZE,1,
- $sendmail_dir,
- 'control@bugs.something messages appear to have been sent out properly');
- # now we need to check to make sure the control message was processed without errors
- ok(system('sh','-c','find '.$sendmail_dir.q( -type f | xargs grep -q "Subject: Processed: Munging a bug with $command")) == 0,
- 'control@bugs.something'. "$command message was parsed without errors");
- # now we need to check to make sure that the control message actually did anything
- my $status;
- $status = read_bug(exists $control_command->{bug}?(bug => $control_command->{bug}):(bug=>1),
- exists $control_command->{location}?(location => $control_command->{location}):(),
- );
- is_deeply($status->{$control_command->{status_key}},
- $control_command->{status_value},
- "bug " .
- (exists $control_command->{bug}?$control_command->{bug}:1).
- " $command"
- )
- or fail(Dumper($status));
- }
-}
+done_testing();