Bugzilla – Attachment 22380 Details for
Bug 11137
QueryParser can ignore parts of a Boolean search after the first
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Bug 11137: regression tests for QP search field alias bug
Bug-11137-regression-tests-for-QP-search-field-ali.patch (text/plain), 4.96 KB, created by
Galen Charlton
on 2013-10-24 20:54:34 UTC
(
hide
)
Description:
Bug 11137: regression tests for QP search field alias bug
Filename:
MIME Type:
Creator:
Galen Charlton
Created:
2013-10-24 20:54:34 UTC
Size:
4.96 KB
patch
obsolete
>From f7bbfdee2812b62902147280d1d6ef0fb546be70 Mon Sep 17 00:00:00 2001 >From: Galen Charlton <gmc@esilibrary.com> >Date: Thu, 24 Oct 2013 20:25:55 +0000 >Subject: [PATCH] Bug 11137: regression tests for QP search field alias bug > >This patch adds regression tests to verify that >Boolean searches using QueryParser function correctly. > >This patch also ensures that QP is correctly initalized >when Search.t is run. > >To test: > >[1] Apply this patch and the following patch. >[2] Verify that prove -v t/QueryParser.t works >[3] Verify that prove -v t/db_dependent/Search.t works >[4] (optional) instead of applying both patches at the same > time, apply only the regression test patch and run the > tests listed in steps 2 and 3. The following tests > should fail: > >t/db_dependent/Search.t (Wstat: 512 Tests: 198 Failed: 2) > Failed tests: 42, 71 > Non-zero exit status: 2 >t/QueryParser.t (Wstat: 256 Tests: 28 Failed: 1) > Failed test: 12 > Non-zero exit status: 1 > >Signed-off-by: Galen Charlton <gmc@esilibrary.com> >--- > t/QueryParser.t | 1 + > t/db_dependent/Search.t | 14 +++++++++++++- > t/db_dependent/zebra_config.pl | 4 +++- > 3 files changed, 17 insertions(+), 2 deletions(-) > >diff --git a/t/QueryParser.t b/t/QueryParser.t >index 01e898a..f0935ec 100644 >--- a/t/QueryParser.t >+++ b/t/QueryParser.t >@@ -25,6 +25,7 @@ is($QParser->target_syntax('biblioserver', 'keyword|publisher:smith'), '@attr 1= > is($QParser->target_syntax('biblioserver', 'ti:"little engine that could"'), '@attr 1=4 @attr 4=1 "little engine that could"', 'phrase query'); > is($QParser->target_syntax('biblioserver', 'keyword|titlekw:smith'), '@attr 1=4 @attr 9=20 @attr 2=102 @attr 4=6 "smith"', 'relevance-bumped query'); > is($QParser->target_syntax('biblioserver', 'au:smith && johnson'), '@and @attr 1=1003 @attr 4=6 "smith" @attr 1=1003 @attr 4=6 "johnson"', 'query with boolean &&'); >+is($QParser->target_syntax('biblioserver', 'au:smith && ti:johnson'), '@and @attr 1=1003 @attr 4=6 "smith" @attr 1=4 @attr 4=6 "johnson"', 'query with boolean &&'); > is($QParser->target_syntax('biblioserver', 'au:smith pubdate(-2008)'), '@and @attr 1=1003 @attr 4=6 "smith" @attr 4=4 @attr 1=pubdate @attr 2=2 "2008"', 'keyword search with pubdate limited to -2008'); > is($QParser->target_syntax('biblioserver', 'au:smith pubdate(2008-)'), '@and @attr 1=1003 @attr 4=6 "smith" @attr 4=4 @attr 1=pubdate @attr 2=4 "2008"', 'keyword search with pubdate limited to 2008-'); > is($QParser->target_syntax('biblioserver', 'au:smith pubdate(2008)'), '@and @attr 1=1003 @attr 4=6 "smith" @attr 4=4 @attr 1=pubdate "2008"', 'keyword search with pubdate limited to 2008'); >diff --git a/t/db_dependent/Search.t b/t/db_dependent/Search.t >index 1c4af21..9329f07 100644 >--- a/t/db_dependent/Search.t >+++ b/t/db_dependent/Search.t >@@ -12,7 +12,7 @@ use YAML; > use C4::Debug; > require C4::Context; > >-use Test::More tests => 194; >+use Test::More tests => 198; > use Test::MockModule; > use MARC::Record; > use File::Spec; >@@ -451,6 +451,18 @@ sub run_marc21_search_tests { > ($error, $results_hashref, $facets_loop) = getRecords($query,$simple_query,[ ], [ 'biblioserver' ],20,0,undef,\%branches,\%itemtypes,$query_type,0); > is($results_hashref->{biblioserver}->{hits}, 2, "getRecords generated multi-faceted search matched right number of records"); > >+ $UseQueryParser = 1; >+ ( $error, $query, $simple_query, $query_cgi, >+ $query_desc, $limit, $limit_cgi, $limit_desc, >+ $stopwords_removed, $query_type ) = buildQuery([], [ 'book' ], [ 'kw' ], [], [], 0, 'en'); >+ ($error, $results_hashref, $facets_loop) = getRecords($query,$simple_query,[ ], [ 'biblioserver' ],20,0,undef,\%branches,\%itemtypes,$query_type,0); >+ is($results_hashref->{biblioserver}->{hits}, 101, "Search for 'book' with index set to 'kw' returns 101 hits"); >+ ( $error, $query, $simple_query, $query_cgi, >+ $query_desc, $limit, $limit_cgi, $limit_desc, >+ $stopwords_removed, $query_type ) = buildQuery([ 'and' ], [ 'book', 'another' ], [ 'kw', 'kw' ], [], [], 0, 'en'); >+ ($error, $results_hashref, $facets_loop) = getRecords($query,$simple_query,[ ], [ 'biblioserver' ],20,0,undef,\%branches,\%itemtypes,$query_type,0); >+ is($results_hashref->{biblioserver}->{hits}, 1, "Search for 'kw:book && kw:another' returns 1 hit"); >+ $UseQueryParser = 0; > > # FIXME: the availability limit does not actually work, so for the moment we > # are just checking that it behaves consistently >diff --git a/t/db_dependent/zebra_config.pl b/t/db_dependent/zebra_config.pl >index 9a4f4f5..1395508 100755 >--- a/t/db_dependent/zebra_config.pl >+++ b/t/db_dependent/zebra_config.pl >@@ -44,7 +44,9 @@ make_path("$destination/var/run/zebradb"); > $ENV{'INSTALL_BASE'} = $destination; > $ENV{'__INSTALL_BASE__'} = $destination; > >-my @files = ( "$source/etc/koha-conf.xml" ); >+my @files = ( "$source/etc/koha-conf.xml", >+ "$source/etc/searchengine/queryparser.yaml", >+ ); > > find(sub { push @files, $File::Find::name if ( -f $File::Find::name ); }, "$source/etc/zebradb"); > >-- >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 11137
:
22380
|
22381
|
22383
|
22384
|
22438
|
22439
|
22932
|
22933