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 => [
$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;
}
} 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);
my ($output, $content_type) = $self->_prepare_report;
- my $mail = Mailer->new(charset => $::locale->is_utf8 ? 'UTF-8' : Common->DEFAULT_CHARSET );
+ my $mail = Mailer->new;
$mail->{from} = $self->config->{email_from};
$mail->{to} = $email;
$mail->{subject} = $self->config->{email_subject};
$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,
return unless $template;
my $email_template = $self->config->{email_template};
- my $filename = $email_template || ( ($user->get_config_value('templates') || "templates/mails") . "/self_test/status_mail.txt" );
+ my $filename = $email_template || ( (SL::DB::Default->get->templates || "templates/mails") . "/self_test/status_mail.txt" );
my $content_type = $filename =~ m/.html$/ ? 'text/html' : 'text/plain';
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;