[Http-webtest-commits] HTTP-WebTest/lib/HTTP/WebTest ReportPlugin.pm,1.6,1.7
Brought to you by:
m_ilya,
richardanderson
From: Ilya M. <m_...@us...> - 2003-03-22 12:26:41
|
Update of /cvsroot/http-webtest/HTTP-WebTest/lib/HTTP/WebTest In directory sc8-pr-cvs1:/tmp/cvs-serv18665/lib/HTTP/WebTest Modified Files: ReportPlugin.pm Log Message: Fix bug when sending report to multiple recipients. Thanks to Amit Kaul for bug report and patch. Also refactored the code a bit. Index: ReportPlugin.pm =================================================================== RCS file: /cvsroot/http-webtest/HTTP-WebTest/lib/HTTP/WebTest/ReportPlugin.pm,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** ReportPlugin.pm 2 Mar 2003 11:52:10 -0000 1.6 --- ReportPlugin.pm 22 Mar 2003 12:26:35 -0000 1.7 *************** *** 216,249 **** my $self = shift; ! $self->global_validate_params(qw(mail_addresses mail ! mail_server mail_from)); ! my $mail_addresses = $self->global_test_param('mail_addresses'); ! my $mail = $self->global_test_param('mail'); ! my $mail_server = $self->global_test_param('mail_server'); ! my $mail_from = $self->global_test_param('mail_from'); ! my $num_fail = $self->webtest->num_fail; # check if we need to mail report ! return unless $mail; ! return unless $mail eq 'all' or $mail eq 'errors'; ! return if $mail eq 'errors' and $num_fail == 0; ! # mail report ! my $smtp = Net::SMTP->new($mail_server || 'localhost'); die "HTTP::WebTest: Can't create Net::SMTP object" unless defined $smtp; my $from = $mail_from || getlogin() || getpwuid($<) || 'nobody'; ! my $to = join ', ', @$mail_addresses; $self->_smtp_cmd($smtp, 'mail', $from); ! $self->_smtp_cmd($smtp, 'to', $to); $self->_smtp_cmd($smtp, 'data'); $self->_smtp_cmd($smtp, 'datasend', "From: $from\n"); ! $self->_smtp_cmd($smtp, 'datasend', "To: $to\n"); ! if ($num_fail > 0) { $self->_smtp_cmd($smtp, 'datasend', ! "Subject: WEB TESTS FAILED! " . ! "FOUND $num_fail ERROR(S)\n"); } else { $self->_smtp_cmd($smtp, 'datasend', --- 216,270 ---- my $self = shift; ! if($self->_email_report_is_expected) { ! $self->_send_email_report; ! } ! } ! # check if we need to mail report ! sub _email_report_is_expected { ! my $self = shift; ! $self->global_validate_params(qw(mail)); ! ! my $mail = $self->global_test_param('mail'); # check if we need to mail report ! return 0 unless defined $mail; ! return 0 unless $mail eq 'all' or $mail eq 'errors'; ! return 0 if $mail eq 'errors' and $self->webtest->num_fail == 0; ! return 1; ! } ! ! # sends test report on email ! sub _send_email_report { ! my $self = shift; ! ! $self->global_validate_params(qw(mail_addresses mail_server mail_from)); ! ! my $mail_addresses = $self->global_test_param('mail_addresses'); ! my $mail_server = $self->global_test_param('mail_server', 'localhost'); ! my $mail_from = $self->global_test_param('mail_from'); ! ! my $smtp = Net::SMTP->new($mail_server); die "HTTP::WebTest: Can't create Net::SMTP object" unless defined $smtp; + my $from = $mail_from || getlogin() || getpwuid($<) || 'nobody'; ! $self->_smtp_cmd($smtp, 'mail', $from); ! $self->_smtp_cmd($smtp, 'to', @$mail_addresses); $self->_smtp_cmd($smtp, 'data'); $self->_smtp_cmd($smtp, 'datasend', "From: $from\n"); ! { ! local $" = ', '; ! $self->_smtp_cmd($smtp, 'datasend', "To: @$mail_addresses\n"); ! } ! if ($self->webtest->num_fail > 0) { $self->_smtp_cmd($smtp, 'datasend', ! 'Subject: WEB TESTS FAILED! ' . ! 'FOUND ' . ! $self->webtest->num_fail . ! "ERROR(S)\n"); } else { $self->_smtp_cmd($smtp, 'datasend', |