Skip to content

Commit 8067271

Browse files
committed
add method to search stats rows by perl maturity
Refs cpan-testers/cpantesters-api#24
1 parent c77971f commit 8067271

File tree

2 files changed

+53
-0
lines changed

2 files changed

+53
-0
lines changed

lib/CPAN/Testers/Schema/ResultSet/Stats.pm

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ L<CPAN::Testers::Schema>
2121

2222
use CPAN::Testers::Schema::Base 'ResultSet';
2323
use Log::Any '$LOG';
24+
use Carp ();
2425

2526
=method since
2627
@@ -36,6 +37,24 @@ sub since( $self, $date ) {
3637
return $self->search( { fulldate => { '>=', $fulldate } } );
3738
}
3839

40+
=method perl_maturity
41+
42+
$rs = $rs->perl_maturity( 'stable' ) # or 'dev'
43+
44+
Restrict the resultset to reports submitted for either C<stable> or
45+
C<dev> Perl versions.
46+
47+
=cut
48+
49+
sub perl_maturity( $self, $maturity ) {
50+
my $devel = $maturity eq 'stable' ? 0 : $maturity eq 'dev' ? 1
51+
: Carp::croak "Unknown maturity: $maturity; Must be one of: 'stable', 'dev'";
52+
return $self->search(
53+
{ 'perl_version.devel' => $devel },
54+
{ join => 'perl_version' },
55+
);
56+
}
57+
3958
=method insert_test_report
4059
4160
my $stat = $rs->insert_test_report( $report );

t/resultset/stats.t

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -130,6 +130,40 @@ subtest 'since' => sub {
130130
or diag explain [ $rs->all ];
131131
};
132132

133+
subtest 'perl_maturity' => sub {
134+
my $perl_devel = $schema->resultset( 'PerlVersion' )->create({ version => '5.25.0' });
135+
my $perl_stable = $schema->resultset( 'PerlVersion' )->create({ version => '5.22.2' });
136+
137+
my $devel_stat = $schema->resultset( 'Stats' )->create({
138+
'dist' => 'Sorauta-SVN-AutoCommit',
139+
'fulldate' => '201705071643',
140+
'guid' => '00000000-3343-11e7-b830-917e22bfee97',
141+
'id' => 2,
142+
'osname' => 'linux',
143+
'osvers' => '4.8.0-2-amd64',
144+
'perl' => '5.25.0',
145+
'platform' => 'x86_64-linux',
146+
'postdate' => 201705,
147+
'state' => 'pass',
148+
'tester' => '"Andreas J. Koenig" <[email protected]>',
149+
'type' => 2,
150+
'uploadid' => 169497,
151+
'version' => '0.02',
152+
});
153+
154+
my $dev_rs = $schema->resultset( 'Stats' )->perl_maturity( 'dev' );
155+
my @dev_rows = $dev_rs->all;
156+
is scalar @dev_rows, 1, '1 test reported for a devel perl';
157+
is $dev_rows[0]->guid, '00000000-3343-11e7-b830-917e22bfee97',
158+
'correct guid for devel perl';
159+
160+
my $stable_rs = $schema->resultset( 'Stats' )->perl_maturity( 'stable' );
161+
my @stable_rows = $stable_rs->all;
162+
is scalar @stable_rows, 1, '1 test reported for a stable perl';
163+
is $stable_rows[0]->guid, 'd0ab4d36-3343-11e7-b830-917e22bfee97',
164+
'correct guid for stable perl';
165+
};
166+
133167
done_testing;
134168

135169

0 commit comments

Comments
 (0)