From c323dc125afc288248e22532b0383a56ce884c7d Mon Sep 17 00:00:00 2001 From: Don Armstrong Date: Thu, 7 Jun 2018 15:34:00 -0700 Subject: [PATCH] add submit_but and run_processall utility routines --- t/22_oo_interface.t | 20 +++++----------- t/lib/DebbugsTest.pm | 54 ++++++++++++++++++++++++++++++++++++++++++-- 2 files changed, 58 insertions(+), 16 deletions(-) diff --git a/t/22_oo_interface.t b/t/22_oo_interface.t index a14b685..55a6b52 100644 --- a/t/22_oo_interface.t +++ b/t/22_oo_interface.t @@ -35,21 +35,13 @@ $tests++; # create 4 bugs for (1..4) { - send_message(to=>'submit@bugs.something', - headers => [To => 'submit@bugs.something', - From => 'foo@bugs.something', - Subject => 'Submitting a bug '.$_, - ], - run_processall => ($_ == 4 ? 1 : 0), - body => < 'Submitting a bug '.$_, + pseudoheaders => {Severity => 'normal', + Tags => 'wontfix moreinfo', + }, + ); } - +run_processall(); my $bc = Debbugs::Collection::Bug->new(bugs => [1..4]); diff --git a/t/lib/DebbugsTest.pm b/t/lib/DebbugsTest.pm index c18e86e..152bd58 100644 --- a/t/lib/DebbugsTest.pm +++ b/t/lib/DebbugsTest.pm @@ -24,6 +24,8 @@ use strict; use vars qw($VERSION $DEBUG %EXPORT_TAGS @EXPORT_OK @EXPORT); use base qw(Exporter); +use v5.10; + use IO::File; use File::Temp qw(tempdir); use Cwd qw(getcwd); @@ -41,7 +43,8 @@ BEGIN{ $DEBUG = 0 unless defined $DEBUG; @EXPORT = (); - %EXPORT_TAGS = (configuration => [qw(dirsize create_debbugs_configuration send_message)], + %EXPORT_TAGS = (configuration => [qw(dirsize create_debbugs_configuration send_message), + qw(submit_bug run_processall)], mail => [qw(num_messages_sent)], control => [qw(test_control_commands)], database => [qw(create_postgresql_database update_postgresql_database)] @@ -207,11 +210,15 @@ sub send_message{ } # now we should run processall to see if the message gets processed if ($param{run_processall}) { - system('scripts/processall') == 0 or die "processall failed"; + run_processall(); } return 1; } +sub run_processall { + system('scripts/processall') == 0 or die "processall failed"; +} + =item test_control_commands test_control_commands(\%config, @@ -285,6 +292,49 @@ EOF } } +sub submit_bug { + state $spec = + {subject => {type => SCALAR, + default => 'Submitting a bug', + }, + body => {type => SCALAR, + default => 'This is a silly bug', + }, + submitter => {type => SCALAR, + default => 'foo@bugs.something', + }, + pseudoheaders => {type => HASHREF, + default => sub {{}}, + }, + package => {type => SCALAR, + default => 'foo', + }, + run_processall => {type => SCALAR, + default => 0, + }, + }; + my %param = + validate_with(params => \@_, + spec => $spec); + my $body = 'Package: '.$param{package}."\n"; + foreach my $key (keys %{$param{pseudoheaders}}) { + for my $val (ref($param{pseudoheaders}{$key}) ? + @{$param{pseudoheaders}{$key}} : + $param{pseudoheaders}{$key}) { + $body .= $key. ': '.$val."\n"; + } + } + $body .="\n".$param{body}; + send_message(to => 'submit@bugs.something', + headers => [To => 'submit@bugs.something', + From => $param{submitter}, + Subject => $param{subject}, + ], + run_processall => $param{run_processall}, + body => $body + ); +} + { package DebbugsTest::HTTPServer; -- 2.39.2