Bug 37856: (QA follow-up) Tidy

Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
This commit is contained in:
Nick Clemens 2024-09-26 19:20:15 +00:00 committed by Katrin Fischer
parent edb6056a74
commit b7600e4801
No known key found for this signature in database
GPG Key ID: 0EF6E2C03357A834
3 changed files with 48 additions and 24 deletions

View File

@ -475,8 +475,8 @@ sub _sushi_errors {
}
my $exceptions = $decoded_response->{Report_Header}->{Exceptions} // $decoded_response->{Exceptions};
if ( $exceptions ) {
foreach my $exception ( @{ $exceptions } ) {
if ($exceptions) {
foreach my $exception ( @{$exceptions} ) {
$self->{job_callbacks}->{add_message_callback}->(
{
type => 'error',

View File

@ -8,11 +8,13 @@ return {
my ($args) = @_;
my ( $dbh, $out ) = @$args{qw(dbh out)};
if( !column_exists( 'erm_usage_data_providers', 'service_platform' ) ) {
$dbh->do(q{
if ( !column_exists( 'erm_usage_data_providers', 'service_platform' ) ) {
$dbh->do(
q{
ALTER TABLE erm_usage_data_providers ADD COLUMN `service_platform` varchar(80) DEFAULT NULL COMMENT 'platform if provider requires it' AFTER `report_types`
});
say_info( $out, "Bug 37856 - Added service_platform column to table 'erm_usage_data_providers'" );
}
);
say_info( $out, "Bug 37856 - Added service_platform column to table 'erm_usage_data_providers'" );
}
say_success( $out, "Bug 37856 - Done" );
},

View File

@ -41,7 +41,8 @@ my $sushi_response_errors = {
};
my $sushi_response_exceptions = {
'multiple_exceptions' => '{"Created":"2024-09-06T10:41:02Z","Created_By":"Test Services","Customer_ID":"Test_customer_id","Report_ID":"TR_J1","Release":"5","Report_Name":"Journal Requests (Excluding OA_Gold)","Institution_Name":"Test Institution","Report_Filters":[{"Name":"Begin_Date","Value":"2024-06-01"},{"Name":"End_Date","Value":"2024-08-31"}],"Exceptions":[{"Code":3050,"Severity":"Warning","Message":"Parameter Not Recognized in this Context","Data":"Parameter api_key is not recognized"},{"Code":3070,"Severity":"Error","Message":"Required ReportFilter Missing","Data":"Required parameter Platform is missing and should be one of:sd|sc|ev|em|ck"}]}',
'multiple_exceptions' =>
'{"Created":"2024-09-06T10:41:02Z","Created_By":"Test Services","Customer_ID":"Test_customer_id","Report_ID":"TR_J1","Release":"5","Report_Name":"Journal Requests (Excluding OA_Gold)","Institution_Name":"Test Institution","Report_Filters":[{"Name":"Begin_Date","Value":"2024-06-01"},{"Name":"End_Date","Value":"2024-08-31"}],"Exceptions":[{"Code":3050,"Severity":"Warning","Message":"Parameter Not Recognized in this Context","Data":"Parameter api_key is not recognized"},{"Code":3070,"Severity":"Error","Message":"Required ReportFilter Missing","Data":"Required parameter Platform is missing and should be one of:sd|sc|ev|em|ck"}]}',
};
subtest 'enqueue() tests' => sub {
@ -173,32 +174,53 @@ subtest 'multiple_exceptions() tests' => sub {
$schema->storage->txn_begin;
my $ua = Test::MockModule->new('LWP::UserAgent');
$ua->mock('simple_request', sub {
return mock_sushi_response({'exception'=>'multiple_exceptions'});
});
$ua->mock(
'simple_request',
sub {
return mock_sushi_response( { 'exception' => 'multiple_exceptions' } );
}
);
my $usage_data_provider = $builder->build_object(
{ class => 'Koha::ERM::EUsage::UsageDataProviders', value => { name => 'TestProvider' } } );
my $job_args = {
ud_provider_id => $usage_data_provider->erm_usage_data_provider_id,
report_type => 'TR_J1',
begin_date => '2023-08-01',
end_date => '2023-09-30',
ud_provider_name => $usage_data_provider->name,
};
ud_provider_id => $usage_data_provider->erm_usage_data_provider_id,
report_type => 'TR_J1',
begin_date => '2023-08-01',
end_date => '2023-09-30',
ud_provider_name => $usage_data_provider->name,
};
my $job_id = Koha::BackgroundJob::ErmSushiHarvester->new->enqueue($job_args);
my $job = Koha::BackgroundJobs->find($job_id)->_derived_class;
$job->process( $job_args );
my $job = Koha::BackgroundJobs->find($job_id)->_derived_class;
$job->process($job_args);
is( $job->{messages}[0]->{message}, decode_json($sushi_response_exceptions->{multiple_exceptions})->{Exceptions}[0]->{Message} . ' - ' . decode_json($sushi_response_exceptions->{multiple_exceptions})->{Exceptions}[0]->{Data},'SUSHI exceptions multiple_exceptions are stored on job messages correctly' );
is( $job->{messages}[0]->{type},'error','SUSHI error multiple_exceptions are stored on job messages correctly' );
is( $job->{messages}[0]->{code},decode_json($sushi_response_exceptions->{multiple_exceptions})->{Exceptions}[0]->{Code},'SUSHI error multiple_exceptions are stored on job messages correctly' );
is(
$job->{messages}[0]->{message},
decode_json( $sushi_response_exceptions->{multiple_exceptions} )->{Exceptions}[0]->{Message} . ' - '
. decode_json( $sushi_response_exceptions->{multiple_exceptions} )->{Exceptions}[0]->{Data},
'SUSHI exceptions multiple_exceptions are stored on job messages correctly'
);
is( $job->{messages}[0]->{type}, 'error', 'SUSHI error multiple_exceptions are stored on job messages correctly' );
is(
$job->{messages}[0]->{code},
decode_json( $sushi_response_exceptions->{multiple_exceptions} )->{Exceptions}[0]->{Code},
'SUSHI error multiple_exceptions are stored on job messages correctly'
);
is( $job->{messages}[1]->{message}, decode_json($sushi_response_exceptions->{multiple_exceptions})->{Exceptions}[1]->{Message} . ' - ' . decode_json($sushi_response_exceptions->{multiple_exceptions})->{Exceptions}[1]->{Data},'SUSHI exceptions multiple_exceptions are stored on job messages correctly' );
is( $job->{messages}[1]->{type},'error','SUSHI error multiple_exceptions are stored on job messages correctly' );
is( $job->{messages}[1]->{code},decode_json($sushi_response_exceptions->{multiple_exceptions})->{Exceptions}[1]->{Code},'SUSHI error multiple_exceptions are stored on job messages correctly' );
is(
$job->{messages}[1]->{message},
decode_json( $sushi_response_exceptions->{multiple_exceptions} )->{Exceptions}[1]->{Message} . ' - '
. decode_json( $sushi_response_exceptions->{multiple_exceptions} )->{Exceptions}[1]->{Data},
'SUSHI exceptions multiple_exceptions are stored on job messages correctly'
);
is( $job->{messages}[1]->{type}, 'error', 'SUSHI error multiple_exceptions are stored on job messages correctly' );
is(
$job->{messages}[1]->{code},
decode_json( $sushi_response_exceptions->{multiple_exceptions} )->{Exceptions}[1]->{Code},
'SUSHI error multiple_exceptions are stored on job messages correctly'
);
$schema->storage->txn_rollback;
};