From 0e6a18bb62eee31986a73a0811ab207aa746a381 Mon Sep 17 00:00:00 2001 From: Tomas Cohen Arazi Date: Thu, 5 May 2016 13:19:28 -0300 Subject: [PATCH] Bug 16453: Make Elasticsearch tests be skipped if configuration entry missing The current tests fail to run if the configuration entry is missing. This is problematic on jenkins and should be fixed. To test: - On master, having koha-conf.xml without (or commented) an entry - Run: $ prove t/db_dependent/Koha_ElasticSearch_Indexer.t \ t/db_dependent/Koha_SearchEngine_Elasticsearch_Search.t -v => FAIL: Tests fail due to missing configuration entry - Apply the patch - Run: $ prove t/db_dependent/Koha_ElasticSearch_Indexer.t \ t/db_dependent/Koha_SearchEngine_Elasticsearch_Search.t -v => SUCCESS: Tests pass, and the ES-configuration-dependent tests are skipped - Have elasticsearch running and the koha-conf.xml entry - Run: $ prove t/db_dependent/Koha_ElasticSearch_Indexer.t \ t/db_dependent/Koha_SearchEngine_Elasticsearch_Search.t -v => SUCCESS: Same results as without the patch - Sign off Signed-off-by: Chris Cormack Signed-off-by: Jesse Weaver Signed-off-by: Brendan Gallagher --- t/db_dependent/Koha_ElasticSearch_Indexer.t | 37 ++++++++++--------- .../Koha_SearchEngine_Elasticsearch_Search.t | 30 ++++++++++----- 2 files changed, 41 insertions(+), 26 deletions(-) diff --git a/t/db_dependent/Koha_ElasticSearch_Indexer.t b/t/db_dependent/Koha_ElasticSearch_Indexer.t index 80539e36e5..626079d5ea 100644 --- a/t/db_dependent/Koha_ElasticSearch_Indexer.t +++ b/t/db_dependent/Koha_ElasticSearch_Indexer.t @@ -1,6 +1,5 @@ # Copyright 2015 Catalyst IT # -# # This file is part of Koha. # # Koha is free software; you can redistribute it and/or modify it @@ -16,32 +15,26 @@ # You should have received a copy of the GNU General Public License # along with Koha; if not, see . -use strict; -use warnings; +use Modern::Perl; + +use Test::More tests => 5; -use Test::More tests => 5; # last test to print use MARC::Record; use_ok('Koha::ElasticSearch::Indexer'); my $indexer; ok( - $indexer = Koha::ElasticSearch::Indexer->new( - { - 'nodes' => ['localhost:9200'], - 'index' => 'mydb' - } - ), + $indexer = Koha::ElasticSearch::Indexer->new({ 'index' => 'biblio' }), 'Creating new indexer object' ); my $marc_record = MARC::Record->new(); -my $field = MARC::Field->new( '001', '1234567' ); -$marc_record->append_fields($field); -$field = MARC::Field->new( '020', '', '', 'a' => '1234567890123' ); -$marc_record->append_fields($field); -$field = MARC::Field->new( '245', '', '', 'a' => 'Title' ); -$marc_record->append_fields($field); +$marc_record->append_fields( + MARC::Field->new( '001', '1234567' ), + MARC::Field->new( '020', '', '', 'a' => '1234567890123' ), + MARC::Field->new( '245', '', '', 'a' => 'Title' ) +); my $records = [$marc_record]; ok( my $converted = $indexer->_convert_marc_to_json($records), @@ -49,4 +42,14 @@ ok( my $converted = $indexer->_convert_marc_to_json($records), is( $converted->count, 1, 'One converted record' ); -ok( $indexer->update_index(undef,$records), 'Update Index' ); +SKIP: { + + eval { $indexer->get_elasticsearch_params; }; + + skip 'ElasticSeatch configuration not available', 1 + if $@; + + ok( $indexer->update_index(undef,$records), 'Update Index' ); +} + +1; diff --git a/t/db_dependent/Koha_SearchEngine_Elasticsearch_Search.t b/t/db_dependent/Koha_SearchEngine_Elasticsearch_Search.t index 9361b4c3bd..ac20414863 100644 --- a/t/db_dependent/Koha_SearchEngine_Elasticsearch_Search.t +++ b/t/db_dependent/Koha_SearchEngine_Elasticsearch_Search.t @@ -14,10 +14,11 @@ # # You should have received a copy of the GNU General Public License # along with Koha; if not, see . -use strict; -use warnings; -use Test::More tests => 10; # last test to print +use Modern::Perl; + +use Test::More tests => 10; + use Koha::SearchEngine::Elasticsearch::QueryBuilder; my $builder = Koha::SearchEngine::Elasticsearch::QueryBuilder->new( { index => 'mydb' } ); @@ -35,14 +36,25 @@ is( $searcher->index, 'mydb', 'Testing basic accessor' ); ok( my $query = $builder->build_query('easy'), 'Build a search query'); -ok( my $results = $searcher->search( $query) , 'Do a search ' ); +SKIP: { + + eval { $builder->get_elasticsearch_params; }; + + skip 'ElasticSeatch configuration not available', 6 + if $@; + + ok( my $results = $searcher->search( $query) , 'Do a search ' ); + + ok( my $marc = $searcher->json2marc( $results->first ), 'Convert JSON to MARC'); + + is (my $count = $searcher->count( $query ), 0 , 'Get a count of the results, without returning results '); -ok( my $marc = $searcher->json2marc( $results->first ), 'Convert JSON to MARC'); + ok ($results = $searcher->search_compat( $query ), 'Test search_compat' ); -is (my $count = $searcher->count( $query ), 0 , 'Get a count of the results, without returning results '); + ok (($results,$count) = $searcher->search_auth_compat ( $query ), 'Test search_auth_compat' ); -ok ($results = $searcher->search_compat( $query ), 'Test search_compat' ); + is ( $count = $searcher->count_auth_use($searcher,1), 0, 'Testing count_auth_use'); -ok (($results,$count) = $searcher->search_auth_compat ( $query ), 'Test search_auth_compat' ); +} -is ( $count = $searcher->count_auth_use($searcher,1), 0, 'Testing count_auth_use'); +1; -- 2.39.2