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 )