App-Smolder-Report
view release on metacpan or search on metacpan
lib/App/Smolder/Report.pm view on Meta::CPAN
my $self = shift;
$self->_fatal("Required 'server' setting is empty or missing")
unless $self->server;
$self->_fatal("Required 'project_id' setting is empty or missing")
unless $self->project_id;
$self->_fatal("Required 'username' setting is empty or missing")
unless $self->username;
$self->_fatal("Required 'password' setting is empty or missing")
unless $self->password;
$self->_fatal("You must provide at least one report to upload")
unless @_;
return $self->_upload_reports(@_);
}
sub _upload_reports {
my ($self, @reports) = @_;
my $server = $self->server;
my $reports_url;
$server = "http://$server"
unless $server =~ m/^http/;
my $ua = LWP::UserAgent->new;
my $url
= $server
lib/App/Smolder/Report.pm view on Meta::CPAN
$self->_log("Report '$report_file' sent successfully");
if ($self->delete) {
if (!unlink($report_file)) {
$self->_log("WARNING: could not delete file $report_file: $!");
}
}
}
else {
$self->_fatal(
"Could not upload report '$report_file'",
"HTTP Code: ".$response->code,
$response->message,
);
}
}
$self->_log("See all reports at $reports_url") if $reports_url;
return $reports_url;
}
t/01-basic.t view on Meta::CPAN
re => qr/Required 'username' setting is empty or missing/,
},
{
add_to_cfg => { username => 'user1' },
re => qr/Required 'password' setting is empty or missing/,
},
{
add_to_cfg => { password => 'pass1' },
re => qr/You must provide at least one report to upload/,
},
);
foreach my $t (@incr_tests) {
$sr->_merge_cfg_hash($t->{add_to_cfg});
throws_ok sub { $sr->report }, $t->{re};
}
my $url;
lives_ok sub { $url = $sr->report('Makefile.PL') };
( run in 2.271 seconds using v1.01-cache-2.11-cpan-b16cb0d3907 )