Projekte: Leeren Reiter "Projekt-Details" entfernt.
[kivitendo-erp.git] / SL / BackgroundJob / SelfTest.pm
index d446572..b715f9e 100644 (file)
@@ -26,7 +26,7 @@ use Rose::Object::MakeMethods::Generic (
    'add_full_diag'  => { interface => 'add', hash_key => 'full_diag' },
   ],
   scalar => [
-   qw(diag tester config aggreg),
+   qw(diag tester config aggreg module_nr),
   ],
 );
 
@@ -65,7 +65,7 @@ sub run {
   );
   # 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->has_problems || $self->aggreg->has_errors || $self->config->{send_email_on_success}) {
+  if ($self->aggreg->failed || $self->config->{send_email_on_success}) {
     $self->_send_email;
   }
 
@@ -88,6 +88,9 @@ sub run_module {
   $module =~ s/[^\w:]//g;
   $module = "SL::BackgroundJob::SelfTest::$module";
 
+  # increase module nr
+  $self->module_nr(($self->module_nr || 0) + 1);
+
   # try to load module;
   (my $file = $module) =~ s|::|/|g;
   eval {
@@ -103,7 +106,7 @@ sub run_module {
   } or $self->add_errors($::locale->text('Could not load class #1, #2', $module, $@)) && return;
 
   $self->add_full_diag($output);
-  $self->{diag_per_module}{$module} = $output;
+  $self->{diag_per_module}{$self->module_nr . ': ' . $module} = $output;
 
   my $parser = TAP::Parser->new({ tap => $output});
   $parser->run;
@@ -134,13 +137,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,
@@ -187,14 +191,4 @@ SL::BackgroundJob::SelfTest - pluggable self testing
   use SL::BackgroundJob::SelfTest;
   SL::BackgroundJob::SelfTest->new->run;;
 
-=head1 DESCRIPTION
-
-
-
-=head1 FUNCTIONS
-
-=head1 BUGS
-
-=head1 AUTHOR
-
 =cut