Bugzilla – Attachment 172047 Details for
Bug 37856
Some SUSHI providers require the platform parameter
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Bug 37856: Add tests
Bug-37856-Add-tests.patch (text/plain), 4.77 KB, created by
Nick Clemens (kidclamp)
on 2024-09-26 19:22:13 UTC
(
hide
)
Description:
Bug 37856: Add tests
Filename:
MIME Type:
Creator:
Nick Clemens (kidclamp)
Created:
2024-09-26 19:22:13 UTC
Size:
4.77 KB
patch
obsolete
>From b4767511c21505caffcb80cf96a0a63ca9d2c472 Mon Sep 17 00:00:00 2001 >From: Pedro Amorim <pedro.amorim@ptfs-europe.com> >Date: Thu, 19 Sep 2024 14:03:40 +0000 >Subject: [PATCH] Bug 37856: Add tests > >This is using the groundwork from bug 37963. >This is testing the specific error this bug is addressing: >Required parameter Platform is missing > >It is also testing that the error message is correctly shown as a background >job report message to the user > >Test plan: >prove t/db_dependent/Koha/BackgroundJob/ErmSushiHarvester.t > >Signed-off-by: David Nind <david@davidnind.com> >--- > .../Koha/BackgroundJob/ErmSushiHarvester.t | 47 ++++++++++++++++++- > 1 file changed, 45 insertions(+), 2 deletions(-) > >diff --git a/t/db_dependent/Koha/BackgroundJob/ErmSushiHarvester.t b/t/db_dependent/Koha/BackgroundJob/ErmSushiHarvester.t >index d6a7440eaef..a3b26367f12 100755 >--- a/t/db_dependent/Koha/BackgroundJob/ErmSushiHarvester.t >+++ b/t/db_dependent/Koha/BackgroundJob/ErmSushiHarvester.t >@@ -17,7 +17,7 @@ > > use Modern::Perl; > >-use Test::More tests => 3; >+use Test::More tests => 4; > > use Koha::Database; > use Koha::BackgroundJobs; >@@ -40,6 +40,10 @@ my $sushi_response_errors = { > 'invalid_api_key' => '{"Code": 2020, "Severity": "Error", "Message": "API Key Invalid"}', > }; > >+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"}]}', >+}; >+ > subtest 'enqueue() tests' => sub { > > plan tests => 3; >@@ -162,6 +166,43 @@ subtest 'invalid_api_key() tests' => sub { > $schema->storage->txn_rollback; > }; > >+subtest 'multiple_exceptions() tests' => sub { >+ >+ plan tests => 6; >+ >+ $schema->storage->txn_begin; >+ >+ my $ua = Test::MockModule->new('LWP::UserAgent'); >+ $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, >+ }; >+ >+ my $job_id = Koha::BackgroundJob::ErmSushiHarvester->new->enqueue($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}[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; >+}; >+ > sub mock_sushi_response { > my ($args) = @_; > my $response = Test::MockObject->new(); >@@ -187,7 +228,9 @@ sub mock_sushi_response { > $response->mock( > 'decoded_content', > sub { >- return $sushi_response_errors->{ $args->{error} }; >+ return $args->{error} >+ ? $sushi_response_errors->{ $args->{error} } >+ : $sushi_response_exceptions->{ $args->{exception} }; > } > ); > } >-- >2.39.5
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
|
Splinter Review
Attachments on
bug 37856
:
171680
|
171681
|
171682
|
171683
|
171773
|
171774
|
171775
|
171893
|
171894
|
171895
|
171896
|
171897
|
171898
|
171899
|
172040
|
172042
|
172043
|
172044
|
172045
|
172046
| 172047 |
172048
|
172155
|
172156
|
172215