9f7e340f82
One of the tests in t/db_dependent/Linker_FirstMatch.t ony works if Zebra is running and authorities have been indexed. This was causing Jenkins agitas. The test should be skipped if Zebra isn't running or authorities have not been indexed at the time the test is run. Signed-off-by: Ian Walls <koha.sekjal@gmail.com> Signed-off-by: Paul Poulain <paul.poulain@biblibre.com>
52 lines
1.4 KiB
Perl
Executable file
52 lines
1.4 KiB
Perl
Executable file
#!/usr/bin/perl
|
|
#
|
|
# This Koha test module is a stub!
|
|
# Add more tests here!!!
|
|
|
|
use strict;
|
|
use warnings;
|
|
use Test::More tests => 3;
|
|
use C4::Context;
|
|
use C4::Heading;
|
|
use MARC::Record;
|
|
use MARC::Field;
|
|
use C4::Linker::FirstMatch;
|
|
|
|
|
|
BEGIN {
|
|
use_ok('C4::Linker');
|
|
}
|
|
my $dbh = C4::Context->dbh;
|
|
|
|
my $query = "SELECT authid, marc FROM auth_header LIMIT 1;";
|
|
my $sth = $dbh->prepare($query);
|
|
$sth->execute();
|
|
my ($authid, $marc) = $sth->fetchrow_array();
|
|
SKIP: {
|
|
skip "No authorities", 2 unless defined $authid;
|
|
my $linker = C4::Linker::FirstMatch->new();
|
|
my $auth = MARC::Record->new_from_usmarc($marc);
|
|
my $fieldmatch;
|
|
if (C4::Context->preference('MARCFlavour') eq 'UNIMARC') {
|
|
$fieldmatch = '2..';
|
|
} else {
|
|
$fieldmatch = '1..';
|
|
}
|
|
my $bibfield = $auth->field($fieldmatch);
|
|
my $tag = $bibfield->tag();
|
|
$tag =~ s/^./6/;
|
|
$bibfield->update(tag => $tag);
|
|
my $heading;
|
|
ok(defined ($heading = C4::Heading->new_from_bib_field($bibfield, '')), "Creating heading from bib field");
|
|
|
|
# If Zebra is not running, or authorities have not been indexed, test 3
|
|
# will fail. Skip it if we are unable to retrieve a list of headings from
|
|
# Zebra.
|
|
my @authids = $heading->authorities(1);
|
|
skip "Unable to search Zebra", 1 unless $#authids > 0;
|
|
|
|
my $authmatch;
|
|
my $fuzzy;
|
|
($authmatch, $fuzzy) = $linker->get_link($heading);
|
|
is($authmatch, $authid, "Matched existing heading");
|
|
}
|