diff options
-rw-r--r-- | lib/jitterbug/Emailer.pm | 31 | ||||
-rw-r--r-- | t/006_emailer.t | 50 |
2 files changed, 66 insertions, 15 deletions
diff --git a/lib/jitterbug/Emailer.pm b/lib/jitterbug/Emailer.pm index ab9bedb..60837d6 100644 --- a/lib/jitterbug/Emailer.pm +++ b/lib/jitterbug/Emailer.pm @@ -16,12 +16,29 @@ sub new { return $self; } +sub _make_body { + my ($header, $message, $tap, $footer) = @_; + + no warnings 'uninitialized'; + return <<BODY; +$header + +Commit Message: +$message + +TAP Output: +$tap + +$footer +BODY + +} sub run { my $self = shift; my $task = $self->{'task'}; my $buildconf = $self->{'conf'}->{'jitterbug'}{'build_process'}; my $project = $task->project->name; - my $tap_output = $self->{'tap_output'}; + my $tap = $self->{'tap_output'}; my $sha1 = $task->commit->sha256; my $shortsha1 = substr($sha1, 0, 8); my $desc = JSON::decode_json( $task->commit->content ); @@ -29,18 +46,8 @@ sub run { my $message = $desc->{'message'}; my $header = $buildconf->{'on_failure_header'}; my $footer = $buildconf->{'on_failure_footer'}; + my $body = _make_body($header,$message, $tap, $footer); - my $body = <<BODY; -$header - -Commit Message: -$message - -TAP Output: -$tap_output - -$footer -BODY # Expand placeholders in our on_failure header and footer $body =~ s/%%PROJECT%%/$project/g; $body =~ s/%%SHA1%%/$sha1/g; diff --git a/t/006_emailer.t b/t/006_emailer.t index feffd38..9cdd14a 100644 --- a/t/006_emailer.t +++ b/t/006_emailer.t @@ -6,7 +6,7 @@ use Test::MockObject; use_ok "jitterbug::Emailer"; -{ +sub setup { my $buildconf = { on_failure_from_email => 'bob@example.com', on_failure_cc_email => 'steve@apple.com', @@ -21,11 +21,15 @@ use_ok "jitterbug::Emailer"; $project->mock('name', sub { 'ponie' }); $commit->mock('sha256', sub { 'c0decafe' }); - $commit->mock('content', sub { '{ }' } ); + $commit->mock('content', sub { '{ "message" : "blargly blarg" }' } ); $task->mock('commit', sub { $commit }); $task->mock('project', sub { $project }); + return ($conf, $commit, $project, $task); +} +{ + my ($conf, $commit, $project, $task) = setup(); my $tap = "THIS IS TAP"; my $e = jitterbug::Emailer->new($conf, $task, $tap); @@ -40,7 +44,47 @@ use_ok "jitterbug::Emailer"; isa_ok($header, 'Email::MIME::Header'); is($header->header_raw('cc'), 'steve@apple.com', 'cc header'); - is($header->header_raw('subject'), 'BLARG ponie @ c0decafe', 'subject header'); + like($header->header_raw('subject'), qr/BLARG ponie @ c0decafe blargly blarg/, 'subject header'); is($header->header_raw('from'), 'bob@example.com', 'from header'); +} + +{ + my $tap = <<TAP; +Copying lib/Math/Primality/AKS.pm -> blib/lib/Math/Primality/AKS.pm +Copying lib/Math/Primality/BigPolynomial.pm -> blib/lib/Math/Primality/BigPolynomial.pm +Copying lib/Math/Primality.pm -> blib/lib/Math/Primality.pm +Copying bin/primes.pl -> blib/script/primes.pl +Copying bin/strong_psuedoprimes.pl -> blib/script/strong_psuedoprimes.pl +# Testing Math::Primality 0.0401, Perl 5.010001, /usr/bin/perl +t/00-load.t ...................... +1..1 +ok 1 - use Math::Primality; +ok +# Failed test '-1 is not prime' +# at t/is_prime.t line 16. +# Looks like you failed 1 test of 573. +t/is_prime.t ..................... +1..6 +ok 1 - is_prime should handle Math::GMPz objects, three is prime +ok 2 - 2 is prime +ok 3 - 1 is not prime +ok 4 - 0 is not prime +not ok 5 - -1 is not prime +ok 6 - blarg +t/boilerplate.t .................. +1..3 +ok 1 - README contains no boilerplate text +ok 2 - Changes contains no boilerplate text +ok 3 - lib/Math/Primality.pm contains no boilerplate text +ok +Test Summary Report +------------------- +t/is_prime.t (Wstat: 256 Tests: 573 Failed: 1) +Failed test: 5 +Non-zero exit status: 1 +Failed 1/11 test programs. 1/2498 subtests failed. +Files=11, Tests=2498, 3 wallclock secs ( 0.20 usr 0.04 sys + 2.99 cusr 0.18 csys = 3.41 CPU) +Result: FAIL +TAP } |