Bugzilla – Attachment 171255 Details for
Bug 35659
OAI harvester
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Bug 35659: (QA follow-up): Add init function tests by using Koha's OAI server
Bug-35659-QA-follow-up-Add-init-function-tests-by-.patch (text/plain), 4.96 KB, created by
Matthias Meusburger
on 2024-09-10 15:37:13 UTC
(
hide
)
Description:
Bug 35659: (QA follow-up): Add init function tests by using Koha's OAI server
Filename:
MIME Type:
Creator:
Matthias Meusburger
Created:
2024-09-10 15:37:13 UTC
Size:
4.96 KB
patch
obsolete
>From 9e1cf4d0688c7d6cd13b36a7dc16861cc7af6351 Mon Sep 17 00:00:00 2001 >From: Matthias Meusburger <matthias.meusburger@biblibre.com> >Date: Tue, 10 Sep 2024 15:34:07 +0000 >Subject: [PATCH] Bug 35659: (QA follow-up): Add init function tests by using > Koha's OAI server > >--- > Koha/OAI/Client/Harvester.pm | 13 +++++++++---- > t/db_dependent/Koha/OAIHarvester.t | 18 +++++++++++++++--- > 2 files changed, 24 insertions(+), 7 deletions(-) > >diff --git a/Koha/OAI/Client/Harvester.pm b/Koha/OAI/Client/Harvester.pm >index 779632824d8..9e60214be16 100644 >--- a/Koha/OAI/Client/Harvester.pm >+++ b/Koha/OAI/Client/Harvester.pm >@@ -87,10 +87,10 @@ Starts harvesting > > sub init { > my ( $self, $args ) = @_; >- > $self->printlog("Starting OAI Harvest from repository"); > my $server = $self->{server}; > my $days = $self->{days}; >+ my $init_results; > > my $h = HTTP::OAI::Harvester->new( > repository => HTTP::OAI::Identify->new( >@@ -117,6 +117,7 @@ sub init { > $lmdflog .= $_->metadataPrefix . " "; > } > $self->printlog("Available metadata formats for this repository: $lmdflog"); >+ $init_results->{metadata_formats} = $lmdflog; > } catch { > $self->printlog("ListMetadataFormats failed"); > }; >@@ -148,7 +149,8 @@ sub init { > ); > if ( $response->is_error ) { > $self->printlog( "Error requesting ListRecords: " . $response->code . " " . $response->message ); >- exit; >+ $init_results->{is_error} = $response->message; >+ return $init_results; > } > $self->printlog( "Request URL: " . $response->requestURL ); > >@@ -164,6 +166,7 @@ sub init { > my $status = $self->processRecord($oai_record); > $stats{$status}++; > } >+ $init_results->{total} = $stats{'total'}; > > my $results = ''; > foreach my $status (@statuses) { >@@ -193,20 +196,22 @@ sub init { > ) > ) or $self->printlog("OAI_HARVEST_REPORT letter not found"); > >- my $success = C4::Letters::EnqueueLetter( >+ my $message_id = C4::Letters::EnqueueLetter( > { > letter => $letter, > to_address => C4::Context->preference("OAI-PMH:HarvestEmailReport"), message_transport_type => 'email' > } > ); >- if ($success) { >+ if ($message_id) { > $self->printlog("Email report enqueued"); >+ $init_results->{letter_message_id} = $message_id; > } else { > $self->printlog("Unable to enqueue report email"); > } > } > > $self->printlog("Ending OAI Harvest from repository"); >+ return $init_results; > } > > =head2 processRecord >diff --git a/t/db_dependent/Koha/OAIHarvester.t b/t/db_dependent/Koha/OAIHarvester.t >index c8ecd701b4b..08bd6f902b4 100755 >--- a/t/db_dependent/Koha/OAIHarvester.t >+++ b/t/db_dependent/Koha/OAIHarvester.t >@@ -18,11 +18,13 @@ > # along with Koha; if not, see <http://www.gnu.org/licenses>. > > use Modern::Perl; >-use Test::More tests => 24; >+use Test::More tests => 28; > use Test::Exception; > use File::Temp qw/tempfile/; > > use t::lib::TestBuilder; >+use t::lib::Mocks; >+ > use HTTP::OAI; > use HTTP::OAI::Metadata::OAI_DC; > use HTTP::OAI::Record; >@@ -39,8 +41,8 @@ $schema->storage->txn_begin; > > my $new_oai_biblio = Koha::OAIServer->new( > { >- endpoint => 'my_host1.org', >- oai_set => 'set1', >+ endpoint => C4::Context->preference('OPACBaseURL') . '/cgi-bin/koha/oai.pl', >+ oai_set => '', > servername => 'my_test_1', > dataformat => 'oai_dc', > recordtype => 'biblio', >@@ -48,8 +50,18 @@ my $new_oai_biblio = Koha::OAIServer->new( > } > )->store; > >+t::lib::Mocks::mock_preference( 'OAI-PMH', '1' ); >+t::lib::Mocks::mock_preference( 'OAI-PMH:HarvestEmailReport', C4::Context->preference('KohaAdminEmailAddress') ); >+ > my $harvester = Koha::OAI::Client::Harvester->new( { server => $new_oai_biblio, verbose => 1, days => 1, force => 1 } ); > >+my $init_results = $harvester->init(); >+ >+like( $init_results->{metadata_formats}, qr/oai_dc marc21 marcxml/, 'Got list of supported metadata formats' ); >+is( $init_results->{is_error}, undef, 'ListRecords request worked' ); >+cmp_ok( $init_results->{total}, '>', 0, 'Records have been processed' ); >+isnt( $init_results->{letter_message_id}, undef, 'Report has been enqueued' ); >+ > my $record = > '<metadata xmlns="http://www.openarchives.org/OAI/2.0/"><oai_dc:dc xmlns:oai_dc="http://www.openarchives.org/OAI/2.0/oai_dc/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.openarchives.org/OAI/2.0/oai_dc/ http://www.openarchives.org/OAI/2.0/oai_dc.xsd"><dc:title>Pièces diverses </dc:title><dc:identifier>ARCH/0320 [cote]</dc:identifier><dc:relation>FR-920509801 [RCR établissement]</dc:relation><dc:relation>Central obrera boliviana [Fonds ou collection]</dc:relation><dc:format>1 carton</dc:format><dc:date>1971/2000</dc:date><dc:type>Archives et manuscrits</dc:type></oai_dc:dc></metadata>'; > >-- >2.39.2
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 35659
:
160356
|
160357
|
160744
|
161813
|
161960
|
162004
|
162005
|
162006
|
162007
|
162008
|
162009
|
162010
|
162011
|
162527
|
162528
|
162692
|
162693
|
162694
|
163527
|
164586
|
164590
|
164602
|
164603
|
164604
|
164605
|
164606
|
164618
|
164619
|
164620
|
164621
|
164622
|
165199
|
165594
|
165595
|
165596
|
165597
|
165598
|
167106
|
167107
|
167171
|
167172
|
167173
|
167174
|
167175
|
167176
|
168982
|
168983
|
169941
|
171255
|
171258
|
171260
|
171264
|
171265
|
171267
|
171675
|
171676
|
171678
|
171679
|
172072
|
172073
|
172074
|
172075
|
172076
|
172077
|
172078
|
172079
|
172080
|
172081
|
172082
|
172083
|
172202
|
172203
|
172204
|
172205
|
172206
|
172207
|
172208
|
172209
|
172210
|
172211
|
172212
|
172213
|
173088
|
173089
|
173090
|
173091
|
173092
|
173093
|
173094
|
173095
|
173096
|
173097
|
173098
|
173099
|
173100
|
173101
|
173561
|
173599
|
173600
|
173601
|
173614
|
174790