SL/BackgroundJob/SelfTest: eine lfd. Modulnummer hinzufügen.
authorBernd Bleßmann <bernd@kivitendo-premium.de>
Thu, 27 Feb 2020 11:17:58 +0000 (12:17 +0100)
committerBernd Bleßmann <bernd@kivitendo-premium.de>
Fri, 28 Feb 2020 09:01:07 +0000 (10:01 +0100)
Die Ergebnisse für das E-Mail-Template liegen in einem Hash mit den
Modul-Namen als keys. Im Template wird über die keys iteriert, damit ist
die Reihenfolge aber nicht garantiert. Deshalb wird hier eine Modulnummer
vor dem Namen eingefügt und die Ergbenisse sortiert - so kommen die Ergebisse
in der Reihenfolge der Module in der Konfig-Datei.

SL/BackgroundJob/SelfTest.pm
templates/mail/self_test/status_mail.txt

index d5811fd..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),
   ],
 );
 
@@ -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;
index ac83cce..c2d8f99 100644 (file)
@@ -15,7 +15,7 @@ Result: [% SELF.aggreg.get_status %]
 Full report:
 ------------
 
-[% FOREACH module = SELF.diag_per_module.keys %]
+[% FOREACH module = SELF.diag_per_module.keys.sort %]
 Module: [% module %]
 --------------------