App-Prove-Plugin-Elasticsearch
view release on metacpan or search on metacpan
lib/App/Prove/Elasticsearch/Harness.pm view on Meta::CPAN
use strict;
use warnings;
use parent qw/TAP::Harness/;
# inject parser_class as Test::Rail::Parser.
sub new {
my $class = shift;
my $arg_for = shift;
$arg_for->{parser_class} = 'App::Prove::Elasticsearch::Parser';
my $self = $class->SUPER::new($arg_for);
return $self;
}
sub make_parser {
my ($self, $job) = @_;
my $args = $self->SUPER::_get_parser_args($job);
my @relevant_keys =
qw{SERVER_HOST SERVER_PORT CLIENT_INDEXER CLIENT_BLAMER CLIENT_VERSIONER CLIENT_PLATFORMER CLIENT_AUTODISCOVER};
my @keys_filtered = grep {
my $subj = $_;
grep { $_ eq $subj } @relevant_keys
} keys(%ENV);
foreach my $key (@keys_filtered) {
my $km = lc($key);
$km =~ s/_/./g;
$args->{$km} = $ENV{$key};
$self->{$km} = $ENV{$key};
}
$self->SUPER::_make_callback('parser_args', $args, $job->as_array_ref);
my $parser = $self->SUPER::_construct($self->SUPER::parser_class, $args);
$self->SUPER::_make_callback('made_parser', $parser, $job->as_array_ref);
my $session =
$self->SUPER::formatter->open_test($job->description, $parser);
return ($parser, $session);
}
sub runtests {
my ($self, @tests) = @_;
if ($ENV{CLIENT_AUTODISCOVER}) {
my $searcher = $self->_require_deps();
@tests = $self->_filter_tests_with_results($searcher, @tests);
}
return $self->SUPER::runtests(@tests);
}
sub _filter_tests_with_results {
my ($self, $searcher, @tests) = @_;
my $indexer = $ENV{CLIENT_INDEXER};
my $conf = {
'server.host' => $ENV{SERVER_HOST},
'server.port' => $ENV{SERVER_PORT},
'client.versioner' => $ENV{CLIENT_VERSIONER},
'client.platformer' => $ENV{CLIENT_PLATFORMER},
lib/App/Prove/Elasticsearch/Indexer/DzilDist.pm view on Meta::CPAN
package App::Prove::Elasticsearch::Indexer::DzilDist;
$App::Prove::Elasticsearch::Indexer::DzilDist::VERSION = '0.001';
use strict;
use warnings;
use parent qw{App::Prove::Elasticsearch::Indexer};
#Basically, do this:
#our $index = `awk '/^name/ {print \$NF}' dist.ini`;
our $index = __CLASS__->SUPER::index;
our $dfile //= 'dist.ini';
if (open(my $dh, '<', $dfile)) {
while (<$dh>) {
($index) = $_ =~ /^name\s*?=\s*?(.*)/;
if ($index) {
$index =~ s/^\s+//;
last;
}
}
lib/App/Prove/Elasticsearch/Indexer/MMDist.pm view on Meta::CPAN
# ABSTRACT: Names your elasticsearch index after your distribution as defined in Makefile.PL
# PODNAME: App::Prove::Elasticsearch::Indexer::MMDist
package App::Prove::Elasticsearch::Indexer::MMDist;
$App::Prove::Elasticsearch::Indexer::MMDist::VERSION = '0.001';
use strict;
use warnings;
use parent qw{App::Prove::Elasticsearch::Indexer};
our $index = __CLASS__->SUPER::index;
our $dfile //= 'Makefile.PL';
if (open(my $dh, '<', $dfile)) {
;
while (<$dh>) {
($index) = $_ =~ /DISTNAME.*\s*?=>\s*?["|'](.*)["|'],?/;
if ($index) {
$index =~ s/^\s+//;
last;
}
lib/App/Prove/Elasticsearch/Parser.pm view on Meta::CPAN
my $esopts = {
'server.host' => delete $opts->{'server.host'},
'server.port' => delete $opts->{'server.port'},
'client.indexer' => delete $opts->{'client.indexer'},
'client.versioner' => delete $opts->{'client.versioner'} // 'Default',
'client.blamer' => delete $opts->{'client.blamer'} // 'Default',
'client.platformer' => delete $opts->{'client.platformer'} // 'Default',
'client.autodiscover' => delete $opts->{'client.autodiscover'},
};
my $self = $class->SUPER::new($opts);
if (ref($self->{'_iterator'}->{'command'}) eq 'ARRAY') {
$self->{'file'} = $self->{'_iterator'}->{'command'}->[-1];
print "# PROCESSING RESULTS FROM TEST FILE: $self->{'file'}\n";
}
my $indexer = $esopts->{'client.indexer'};
_require_indexer($indexer);
my $versioner =
App::Prove::Elasticsearch::Utils::require_versioner($esopts);
my $platformer =
lib/App/Prove/Elasticsearch/Parser.pm view on Meta::CPAN
}
sub planCallback {
my ($plan) = @_;
my $self = $plan->{'parser'};
$self->{raw_output} .= $plan->as_string . "\n";
}
sub make_result {
my ($self, @args) = @_;
my $res = $self->SUPER::make_result(@args);
$res->{'parser'} = $self;
return $res;
}
1;
__END__
=pod
lib/App/Prove/Elasticsearch/Queue/Rabbit.pm view on Meta::CPAN
use strict;
use warnings;
use parent qw{App::Prove::Elasticsearch::Queue::Default};
use Net::RabbitMQ;
use JSON::MaybeXS;
sub new {
my ($class, $input) = @_;
my $self = $class->SUPER::new($input);
#Connect to rabbit
$self->{mq} = Net::RabbitMQ->new();
$self->{config}->{'queue.exchange'} ||= 'testsuite';
#Allow callers to overwrite this to prevent double-usage of channels
$self->{write_channel} = 1;
$self->{read_channel} = 2;
my $port =
( run in 0.480 second using v1.01-cache-2.11-cpan-a9ef4e587e4 )