Bugzilla – Attachment 94110 Details for
Bug 13937
Add an Elasticsearch-compatible Z39.50/SRU daemon
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Bug 13937: (QA follow-up) Make tests work with YAZ 4 and 5.
Bug-13937-QA-follow-up-Make-tests-work-with-YAZ-4-.patch (text/plain), 10.78 KB, created by
Ere Maijala
on 2019-10-15 07:16:49 UTC
(
hide
)
Description:
Bug 13937: (QA follow-up) Make tests work with YAZ 4 and 5.
Filename:
MIME Type:
Creator:
Ere Maijala
Created:
2019-10-15 07:16:49 UTC
Size:
10.78 KB
patch
obsolete
>From 782f3dad821e5aaedf6ae77d5a323617cce114fc Mon Sep 17 00:00:00 2001 >From: Ere Maijala <ere.maijala@helsinki.fi> >Date: Tue, 15 Oct 2019 09:39:42 +0300 >Subject: [PATCH] Bug 13937: (QA follow-up) Make tests work with YAZ 4 and 5. > >Also makes add_item_status tests more robust by clearing the cache after modifying authorised values. >--- > .../Koha/Z3950Responder/GenericSession.t | 12 +- > t/db_dependent/Koha/Z3950Responder/Session2.t | 8 +- > t/db_dependent/Koha/Z3950Responder/config.xml | 2 +- > .../Koha/Z3950Responder/pqf.properties | 162 ++++++++++++++++++ > 4 files changed, 177 insertions(+), 7 deletions(-) > create mode 100644 t/db_dependent/Koha/Z3950Responder/pqf.properties > >diff --git a/t/db_dependent/Koha/Z3950Responder/GenericSession.t b/t/db_dependent/Koha/Z3950Responder/GenericSession.t >index b8d9013826..8fe69704cc 100644 >--- a/t/db_dependent/Koha/Z3950Responder/GenericSession.t >+++ b/t/db_dependent/Koha/Z3950Responder/GenericSession.t >@@ -7,6 +7,8 @@ use Test::WWW::Mechanize; > use t::lib::Mocks qw(mock_preference); > > use File::Basename; >+use File::Copy; >+use FindBin qw($Bin); > use XML::LibXML; > use YAML; > use ZOOM; >@@ -80,7 +82,7 @@ subtest 'test_search' => sub { > > $child = fork(); > if ($child == 0) { >- my $config_dir = dirname(__FILE__) . '/'; >+ my $config_dir = $Bin . '/'; > my $z = Koha::Z3950Responder->new( { > config_dir => $config_dir > }); >@@ -116,21 +118,21 @@ subtest 'test_search' => sub { > > # SRU protocol tests > my $base = 'http://localhost:42111'; >- my $ns = 'http://docs.oasis-open.org/ns/search-ws/sruResponse'; >+ my $ns = 'http://www.loc.gov/zing/srw/'; > my $marc_ns = 'http://www.loc.gov/MARC21/slim'; > my $agent = Test::WWW::Mechanize->new( autocheck => 1 ); > >- $agent->get_ok("$base", 'Retrieve explain response'); >+ $agent->get_ok("$base?version=1.1", 'Retrieve explain response'); > my $dom = XML::LibXML->load_xml(string => $agent->content()); > my @nodes = $dom->getElementsByTagNameNS($ns, 'explainResponse'); > is(scalar(@nodes), 1, 'explainResponse returned'); > >- $agent->get_ok("$base/biblios?operation=searchRetrieve&recordSchema=marcxml&maximumRecords=10&query=", 'Try bad search query'); >+ $agent->get_ok("$base/biblios?operation=searchRetrieve&recordSchema=marcxml&version=1.1&maximumRecords=10&query=", 'Try bad search query'); > $dom = XML::LibXML->load_xml(string => $agent->content()); > @nodes = $dom->getElementsByTagNameNS($ns, 'diagnostics'); > is(scalar(@nodes), 1, 'diagnostics returned for bad query'); > >- $agent->get_ok("$base/biblios?operation=searchRetrieve&recordSchema=marcxml&maximumRecords=10&query=(dc.author%3dauthor AND (dc.title%3d\"title(s)\" OR dc.title%3danother))", 'Retrieve search results'); >+ $agent->get_ok("$base/biblios?operation=searchRetrieve&recordSchema=marcxml&version=1.1&maximumRecords=10&query=(dc.author%3dauthor AND (dc.title%3d\"title(s)\" OR dc.title%3danother))", 'Retrieve search results'); > $dom = XML::LibXML->load_xml(string => $agent->content()); > @nodes = $dom->getElementsByTagNameNS($ns, 'searchRetrieveResponse'); > is(scalar(@nodes), 1, 'searchRetrieveResponse returned'); >diff --git a/t/db_dependent/Koha/Z3950Responder/Session2.t b/t/db_dependent/Koha/Z3950Responder/Session2.t >index 073889b050..7cb4eb1ef2 100644 >--- a/t/db_dependent/Koha/Z3950Responder/Session2.t >+++ b/t/db_dependent/Koha/Z3950Responder/Session2.t >@@ -5,6 +5,8 @@ use Test::More tests => 3; > use t::lib::TestBuilder; > use C4::Items; > >+use Koha::Caches; >+ > BEGIN { > use_ok('Koha::Z3950Responder'); > use_ok('Koha::Z3950Responder::Session'); >@@ -20,7 +22,7 @@ subtest 'add_item_status' => sub { > plan tests => 2; > > # This time we are sustituting some values >- $builder->schema->resultset( 'AuthorisedValue' )->delete_all; >+ $builder->schema->resultset( 'AuthorisedValue' )->delete_all(); > $builder->build({ > source => 'AuthorisedValue', > value => { >@@ -37,6 +39,10 @@ subtest 'add_item_status' => sub { > lib => "Borked completely" > } > }); >+ >+ # Clear the cache to make sure the above values take effect >+ my $cache = Koha::Caches->get_instance(); >+ $cache->flush_all(); > > ## FIRST ITEM HAS ALL THE STATUSES ## > my $item_1 = $builder->build({ >diff --git a/t/db_dependent/Koha/Z3950Responder/config.xml b/t/db_dependent/Koha/Z3950Responder/config.xml >index 68587d9653..2b47aa3d33 100644 >--- a/t/db_dependent/Koha/Z3950Responder/config.xml >+++ b/t/db_dependent/Koha/Z3950Responder/config.xml >@@ -1,7 +1,7 @@ > <yazgfs> > <listen id="public">tcp:localhost:42111</listen> > <server> >- <cql2rpn>../../../../etc/z3950/pqf.properties</cql2rpn> >+ <cql2rpn>pqf.properties</cql2rpn> > <explain xmlns="http://explain.z3950.org/dtd/2.0/"> > <retrievalinfo> > <retrieval syntax="usmarc" name="marc21"/> >diff --git a/t/db_dependent/Koha/Z3950Responder/pqf.properties b/t/db_dependent/Koha/Z3950Responder/pqf.properties >new file mode 100644 >index 0000000000..55919ee202 >--- /dev/null >+++ b/t/db_dependent/Koha/Z3950Responder/pqf.properties >@@ -0,0 +1,162 @@ >+# >+# Propeties file to drive org.z3950.zing.cql.CQLNode's toPQF() >+# back-end and the YAZ CQL-to-PQF converter. This specifies the >+# interpretation of various CQL indexes, relations, etc. in terms >+# of Type-1 query attributes. >+# >+# This configuration file generates queries using BIB-1 attributes. >+# See http://www.loc.gov/z3950/agency/zing/cql/dc-indexes.html >+# for the Maintenance Agency's work-in-progress mapping of Dublin Core >+# indexes to Attribute Architecture (util, XD and BIB-2) >+# attributes. >+ >+# Identifiers for prefixes used in this file. (index.*) >+set.cql = info:srw/cql-context-set/1/cql-v1.1 >+set.rec = info:srw/cql-context-set/2/rec-1.0 >+set.dc = info:srw/cql-context-set/1/dc-v1.1 >+set.bath = http://zing.z3950.org/cql/bath/2.0/ >+ >+# default set (in query) >+set = info:srw/cql-context-set/1/dc-v1.1 >+ >+# The default access point and result-set references >+index.cql.serverChoice = 1=1016 >+ # srw.serverChoice is deprecated in favour of cql.serverChoice >+ # BIB-1 "any" >+ >+index.rec.id = 1=12 >+index.dc.identifier = 1=1007 >+index.dc.title = 1=4 >+index.dc.subject = 1=21 >+index.dc.creator = 1=1003 >+index.dc.author = 1=1003 >+index.dc.itemtype = 1=1031 >+index.dc.barcode = 1=1028 >+index.dc.branch = 1=1033 >+index.dc.isbn = 1=7 >+index.dc.issn = 1=8 >+index.dc.any = 1=1016 >+index.dc.note = 1=63 >+ >+# personal name experimental >+index.dc.pname = 1=1 >+ ### Unofficial synonym for "creator" >+index.dc.editor = 1=1020 >+index.dc.publisher = 1=1018 >+index.dc.description = 1=62 >+ # "abstract" >+index.dc.date = 1=30 >+index.dc.resourceType = 1=1031 >+ # guesswork: "Material-type" >+index.dc.format = 1=1034 >+ # guesswork: "Content-type" >+index.dc.resourceIdentifier = 1=12 >+ # "Local number" >+#index.dc.source = 1=1019 >+ # "Record-source" >+index.dc.language = 1=54 >+ # "Code--language" >+ >+index.dc.Place-publication = 1=59 >+ # "Place-publication" >+ >+#index.dc.relation = 1=? >+ ### No idea how to represent this >+#index.dc.coverage = 1=? >+ ### No idea how to represent this >+#index.dc.rights = 1=? >+ ### No idea how to represent this >+ >+# Relation attributes are selected according to the CQL relation by >+# looking up the "relation.<relation>" property: >+# >+relation.< = 2=1 >+relation.le = 2=2 >+relation.eq = 2=3 >+relation.exact = 2=3 >+relation.ge = 2=4 >+relation.> = 2=5 >+relation.<> = 2=6 >+ >+### These two are not really right: >+relation.all = 2=3 >+relation.any = 2=3 >+ >+# BIB-1 doesn't have a server choice relation, so we just make the >+# choice here, and use equality (which is clearly correct). >+relation.scr = 2=3 >+ >+# Relation modifiers. >+# >+relationModifier.relevant = 2=102 >+relationModifier.fuzzy = 5=103 >+ ### 100 is "phonetic", which is not quite the same thing >+relationModifier.stem = 2=101 >+relationModifier.phonetic = 2=100 >+ >+# Position attributes may be specified for anchored terms (those >+# beginning with "^", which is stripped) and unanchored (those not >+# beginning with "^"). This may change when we get a BIB-1 truncation >+# attribute that says "do what CQL does". >+# >+position.first = 3=1 6=1 >+ # "first in field" >+position.any = 3=3 6=1 >+ # "any position in field" >+position.last = 3=4 6=1 >+ # not a standard BIB-1 attribute >+position.firstAndLast = 3=3 6=3 >+ # search term is anchored to be complete field >+ >+# Structure attributes may be specified for individual relations; a >+# default structure attribute my be specified by the pseudo-relation >+# "*", to be used whenever a relation not listed here occurs. >+# >+structure.exact = 4=108 >+ # string >+structure.all = 4=2 >+structure.any = 4=2 >+structure.* = 4=1 >+ # phrase >+ >+# Truncation attributes used to implement CQL wildcard patterns. The >+# simpler forms, left, right- and both-truncation will be used for the >+# simplest patterns, so that we produce PQF queries that conform more >+# closely to the Bath Profile. However, when a more complex pattern >+# such as "foo*bar" is used, we fall back on Z39.58-style masking. >+# >+truncation.right = 5=1 >+truncation.left = 5=2 >+truncation.both = 5=3 >+truncation.none = 5=100 >+truncation.z3958 = 5=104 >+ >+# Finally, any additional attributes that should always be included >+# with each term can be specified in the "always" property. >+# >+always = 6=1 >+# 6=1: completeness = incomplete subfield >+ >+ >+# Bath Profile support, added Thu Dec 18 13:06:20 GMT 2003 >+# See the Bath Profile for SRW at >+# http://zing.z3950.org/cql/bath.html >+# including the Bath Context Set defined within that document. >+# >+# In this file, we only map index-names to BIB-1 use attributes, doing >+# so in accordance with the specifications of the Z39.50 Bath Profile, >+# and leaving the relations, wildcards, etc. to fend for themselves. >+ >+index.bath.keyTitle = 1=33 >+index.bath.possessingInstitution = 1=1044 >+index.bath.name = 1=1002 >+index.bath.personalName = 1=1 >+index.bath.corporateName = 1=2 >+index.bath.conferenceName = 1=3 >+index.bath.uniformTitle = 1=6 >+index.bath.isbn = 1=7 >+index.bath.issn = 1=8 >+index.bath.geographicName = 1=58 >+index.bath.notes = 1=63 >+index.bath.topicalSubject = 1=1079 >+index.bath.genreForm = 1=1075 >-- >2.17.1
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 13937
:
46369
|
47417
|
47418
|
47419
|
53503
|
58122
|
58125
|
58126
|
59443
|
59444
|
60735
|
60736
|
60737
|
60738
|
66943
|
66944
|
66945
|
66946
|
69139
|
82562
|
82563
|
82564
|
82565
|
82566
|
82567
|
82589
|
82590
|
82591
|
82592
|
82593
|
82594
|
82595
|
82660
|
82661
|
82662
|
82663
|
82664
|
82665
|
82666
|
82667
|
83780
|
83781
|
83782
|
83783
|
83784
|
83785
|
83786
|
83787
|
83788
|
83789
|
83951
|
83952
|
83953
|
83954
|
83955
|
83956
|
83957
|
83958
|
83959
|
84050
|
84051
|
84052
|
84053
|
84054
|
84055
|
84056
|
84057
|
84058
|
84059
|
84062
|
84063
|
84064
|
84065
|
84066
|
84067
|
84068
|
84069
|
84072
|
84073
|
85112
|
86353
|
86354
|
86355
|
86356
|
86357
|
86358
|
86359
|
86360
|
86361
|
86362
|
86363
|
86364
|
88907
|
88908
|
88909
|
88910
|
88911
|
88912
|
88913
|
88914
|
88915
|
88916
|
88917
|
88918
|
91728
|
91729
|
91730
|
91731
|
91732
|
91733
|
91734
|
91735
|
91736
|
91737
|
91738
|
91739
|
91740
|
93913
|
94097
|
94109
| 94110 |
94209
|
94616
|
94647