sub get_xisbns {
my ( $isbn ) = @_;
- my ($response,$thing_response,$xisbn_response,$syndetics_response);
+ my ($response,$thing_response,$xisbn_response,$syndetics_response,$errors);
# THINGISBN
if ( C4::Context->preference('ThingISBN') ) {
my $url = "http://www.librarything.com/api/thingISBN/".$isbn;
unless ($reached_limit) {
$xisbn_response = _get_url($url,'xisbn');
}
+ $errors->{xisbn} = $xisbn_response->{ stat }
+ if $xisbn_response->{ stat } ne 'ok';
}
$response->{isbn} = [ @{ $xisbn_response->{isbn} or [] }, @{ $syndetics_response->{isbn} or [] }, @{ $thing_response->{isbn} or [] } ];
my $xbiblio= _get_biblio_from_xisbn($response_data->{content});
push @xisbns, $xbiblio if $xbiblio;
}
- return \@xisbns;
+ if ( wantarray ) {
+ return (\@xisbns, $errors);
+ }
+ else {
+ return \@xisbns;
+ }
}
sub _get_url {
my $search_module = new Test::MockModule('C4::Search');
$search_module->mock('SimpleSearch', \&Mock_SimpleSearch );
-
+my $errors;
my $context = C4::Context->new;
my ( $biblionumber_tag, $biblionumber_subfield ) =
t::lib::Mocks::mock_preference( 'XISBN', 1 );
my $results_xisbn;
-eval { $results_xisbn = C4::XISBN::get_xisbns($isbn1); };
+eval { ($results_xisbn, $errors) = C4::XISBN::get_xisbns($isbn1); };
SKIP: {
- skip "Problem retrieving XISBN", 1
- unless $@ eq '';
+ skip "Problem retrieving XISBN (" . $errors->{xisbn} . ")", 1
+ if $errors->{xisbn};
is( $results_xisbn->[0]->{biblionumber},
$biblionumber3,
"Gets correct biblionumber from a book with a similar isbn using XISBN." );