Bugzilla – Attachment 19122 Details for
Bug 9728
XISBN use simple search instead of SQL
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Bug 9728: XISBN unit test update
0002-Bug-9728-XISBN-unit-test-update.patch (text/plain), 5.82 KB, created by
Fridolin Somers
on 2013-06-18 14:59:13 UTC
(
hide
)
Description:
Bug 9728: XISBN unit test update
Filename:
MIME Type:
Creator:
Fridolin Somers
Created:
2013-06-18 14:59:13 UTC
Size:
5.82 KB
patch
obsolete
>From 78e0422a69d62644ede5d9f825b8604d2bf80548 Mon Sep 17 00:00:00 2001 >From: Fridolyn SOMERS <fridolyn.somers@biblibre.com> >Date: Tue, 18 Jun 2013 16:52:12 +0200 >Subject: [PATCH 2/2] Bug 9728: XISBN unit test update > >--- > C4/XISBN.pm | 2 +- > t/db_dependent/XISBN.t | 121 +++++++++++++++++++++++++++++++++++++----------- > 2 files changed, 96 insertions(+), 27 deletions(-) > >diff --git a/C4/XISBN.pm b/C4/XISBN.pm >index ad63ff6..d48c540 100644 >--- a/C4/XISBN.pm >+++ b/C4/XISBN.pm >@@ -64,7 +64,7 @@ sub _get_biblio_from_xisbn { > my $xisbn = shift; > my $dbh = C4::Context->dbh; > >- my ( $errors, $results, $total_hits ) = SimpleSearch( "nb=$xisbn", 0, 1 ); >+ my ( $errors, $results, $total_hits ) = C4::Search::SimpleSearch( "nb=$xisbn", 0, 1 ); > return unless ( !$errors && scalar @$results ); > > my $record = MARC::Record::new_from_usmarc( $results->[0] ); >diff --git a/t/db_dependent/XISBN.t b/t/db_dependent/XISBN.t >index 11159f6..a952484 100755 >--- a/t/db_dependent/XISBN.t >+++ b/t/db_dependent/XISBN.t >@@ -1,12 +1,12 @@ > #!/usr/bin/perl > # >-# This Koha test module is a stub! >+# This Koha test module is a stub! > # Add more tests here!!! > >-use strict; >-use warnings; >+use Modern::Perl; >+ > # use Test::Class::Load qw ( t/db_dependent/ ); >-use Test::More tests => 4; >+use Test::More tests => 5; > use MARC::Record; > use C4::Biblio; > use C4::XISBN; >@@ -14,38 +14,107 @@ use Data::Dumper; > use C4::Context; > > BEGIN { >- use_ok('C4::XISBN'); >+ use_ok('C4::XISBN'); > } > >+# Avoid "redefined subroutine" warnings >+local $SIG{__WARN__} = sub { warn $_[0] unless $_[0] =~ /redefined/ }; >+*C4::Search::SimpleSearch = \&Mock_SimpleSearch; >+ > # KohaTest::clear_test_database(); > # KohaTest::create_test_database(); > >-my $isbn = '0590353403'; >-my $isbn2 = '0684843897'; >+my $context = C4::Context->new; >+ >+my ( $biblionumber_tag, $biblionumber_subfield ) = >+ GetMarcFromKohaField( 'biblio.biblionumber', '' ); >+my ( $isbn_tag, $isbn_subfield ) = >+ GetMarcFromKohaField( 'biblioitems.isbn', '' ); > >-my $marc_record=MARC::Record->new; >-my $field = MARC::Field->new('020','','','a' => $isbn); >-$marc_record->append_fields($field); >-my($biblionumber,$biblioitemnumber) = AddBiblio($marc_record,''); >+# Harry Potter and the Sorcerer's Stone, 1st American ed. 1997 >+my $isbn1 = '0590353403'; >+# ThingISBN match : Silent Wing, First Edition 1998 >+my $isbn2 = '0684843897'; >+# XISBN match : Harry Potter and the Philosopher's Stone, Magic ed. 2000 >+my $isbn3 = '1551923963'; > >-my $marc_record=MARC::Record->new; >-my $field = MARC::Field->new('020','','','a' => $isbn2); >-$marc_record->append_fields($field); >-my($biblionumber2,$biblioitemnumber2) = AddBiblio($marc_record,''); >+my $biblionumber1 = _add_biblio_with_isbn($isbn1); >+my $biblionumber2 = _add_biblio_with_isbn($isbn2); >+my $biblionumber3 = _add_biblio_with_isbn($isbn3); > >+my $trial = C4::XISBN::get_biblionumber_from_isbn($isbn1); >+is( $trial->[0]->{biblionumber}, >+ $biblionumber1, >+ "It gets the correct biblionumber from the only isbn we have added." ); > >-my $trial = C4::XISBN::get_biblionumber_from_isbn($isbn); >-is($trial->[0]->{biblionumber},$biblionumber,"It gets the correct biblionumber from the only isbn we have added."); >+$trial = C4::XISBN::_get_biblio_from_xisbn($isbn1); >+is( $trial->{biblionumber}, >+ $biblionumber1, "Gets biblionumber like the previous test." ); > >-$trial = C4::XISBN::_get_biblio_from_xisbn($isbn); >-is($trial->{biblionumber},$biblionumber,"Gets biblionumber like the previous test."); >+$context->set_preference( 'ThingISBN', 1 ); >+$context->set_preference( 'XISBN', 0 ); >+my $results_thingisbn = C4::XISBN::get_xisbns($isbn1); >+is( $results_thingisbn->[0]->{biblionumber}, >+ $biblionumber2, >+ "Gets correct biblionumber from a book with a similar isbn using ThingISBN." ); > >-my $context = C4::Context->new(); >-$context->set_preference('ThingISBN','on'); >-diag C4::Context::preference('ThingISBN'); >-my $var = C4::XISBN::get_xisbns($isbn); >-is($var->[0]->{biblionumber},$biblionumber2,"Gets correct biblionumber from a book with a similar isbn."); >+$context->set_preference( 'ThingISBN', 0 ); >+$context->set_preference( 'XISBN', 1 ); >+my $results_xisbn = C4::XISBN::get_xisbns($isbn1); >+is( $results_xisbn->[0]->{biblionumber}, >+ $biblionumber3, >+ "Gets correct biblionumber from a book with a similar isbn using XISBN." ); > > # clean up after ourselves >-DelBiblio($biblionumber); >-DelBiblio($biblionumber2); >\ No newline at end of file >+DelBiblio($biblionumber1); >+DelBiblio($biblionumber2); >+DelBiblio($biblionumber3); >+ >+# Util subs >+ >+# Add new biblio with isbn and return biblionumber >+sub _add_biblio_with_isbn { >+ my $isbn = shift; >+ >+ my $marc_record = MARC::Record->new; >+ my $field = MARC::Field->new( $isbn_tag, '', '', $isbn_subfield => $isbn ); >+ $marc_record->append_fields($field); >+ my ( $biblionumber, $biblioitemnumber ) = AddBiblio( $marc_record, '' ); >+ return $biblionumber; >+} >+ >+# Mocked subs >+ >+# C4::Search::SimpleSearch >+sub Mock_SimpleSearch { >+ my $query = shift; >+ my @results; >+ >+ $query =~ s/-//g; >+ my $ret_biblionumber; >+ if ( $query =~ /$isbn1/ ) { >+ $ret_biblionumber = $biblionumber1; >+ } >+ elsif ( $query =~ /$isbn2/ ) { >+ $ret_biblionumber = $biblionumber2; >+ } >+ elsif ( $query =~ /$isbn3/ ) { >+ $ret_biblionumber = $biblionumber3; >+ } >+ >+ my $record = MARC::Record->new; >+ $record->leader(' ngm a22 7a 4500'); >+ my $biblionumber_field; >+ if ( $biblionumber_tag < 10 ) { >+ $biblionumber_field = >+ MARC::Field->new( $biblionumber_tag, $ret_biblionumber ); >+ } >+ else { >+ $biblionumber_field = MARC::Field->new( $biblionumber_tag, '', '', >+ $biblionumber_subfield => $ret_biblionumber ); >+ } >+ $record->append_fields($biblionumber_field); >+ >+ push @results, $record->as_usmarc; >+ return ( undef, \@results, 1 ); >+} >-- >1.7.10.4 >
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 9728
:
15763
|
16633
|
18650
| 19122