X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=SL%2FBackgroundJob%2FSelfTest.pm;h=d341e64dfa8383c161c39bc5597f26f72b7370ae;hb=ab7c51c13324db5af2f7c6a3856f41f742c6c8d6;hp=6137ced4270e8e5cd8e62d4481480a14aef24244;hpb=0d1bb5102f01eb03da55bc87b52ac52cd7ae7534;p=kivitendo-erp.git diff --git a/SL/BackgroundJob/SelfTest.pm b/SL/BackgroundJob/SelfTest.pm index 6137ced42..d341e64df 100644 --- a/SL/BackgroundJob/SelfTest.pm +++ b/SL/BackgroundJob/SelfTest.pm @@ -13,6 +13,8 @@ use FindBin; use SL::DB::AuthUser; use SL::DB::Default; use SL::Common; +use SL::Locale::String qw(t8); +use Carp; use Rose::Object::MakeMethods::Generic ( array => [ @@ -61,11 +63,13 @@ sub run { $self->aggreg->failed, $self->aggreg->todo_passed, ); - - if (!$self->aggreg->all_passed || $self->config->{send_email_on_success}) { + # if (!$self->aggreg->all_passed || $self->config->{send_email_on_success}) { + # all_passed is not set or calculated (anymore). it is safe to check only for probs or errors + if ($self->aggreg->failed || $self->config->{send_email_on_success}) { $self->_send_email; } + croak t8("Unsuccessfully executed:" . join ("\n", $self->errors)) if $self->errors; return 1; } @@ -92,11 +96,10 @@ sub run_module { } or $self->add_errors($::locale->text('Could not load class #1 (#2): "#3"', $module, $file, $@)) && return; eval { - my $worker = $module->new; - $worker->tester($self->tester); - - $worker->run; - 1; + $self->tester->subtest($module => sub { + $module->new->run; + }); + 1 } or $self->add_errors($::locale->text('Could not load class #1, #2', $module, $@)) && return; $self->add_full_diag($output); @@ -131,13 +134,14 @@ sub _send_email { $mail->{content_type} = $content_type; $mail->{message} = $$output; - $mail->send; + my $err = $mail->send; + $self->add_errors('Mailer error #1', $err) if $err; + } sub _prepare_report { my ($self) = @_; - my $user = $self->_email_user; my $template = Template->new({ 'INTERPOLATE' => 0, 'EVAL_PERL' => 0, 'ABSOLUTE' => 1, @@ -153,8 +157,10 @@ sub _prepare_report { my %params = ( SELF => $self, host => hostname, - database => $::myconfig{dbname}, + database => $::auth->client->{dbname}, + client => $::auth->client->{name}, path => $FindBin::Bin, + errors => $self->errors, ); my $output;