Bugzilla – Attachment 94912 Details for
Bug 23630
Elasticsearch indexing is removing field 999
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Bug 23630: (QA follow-up) Fix tests
Bug-23630-QA-follow-up-Fix-tests.patch (text/plain), 15.21 KB, created by
Nick Clemens
on 2019-10-31 13:24:24 UTC
(
hide
)
Description:
Bug 23630: (QA follow-up) Fix tests
Filename:
MIME Type:
Creator:
Nick Clemens
Created:
2019-10-31 13:24:24 UTC
Size:
15.21 KB
patch
obsolete
>From 74be32d04a6aafe7d9cf5e7d1bace0235e61989d Mon Sep 17 00:00:00 2001 >From: Nick Clemens <nick@bywatersolutions.com> >Date: Thu, 31 Oct 2019 13:19:24 +0000 >Subject: [PATCH] Bug 23630: (QA follow-up) Fix tests > >marc_records_to_documents is now an arrayref of hashes, not an arrayref of arrays > >_sanitise_records has been removed, we don't need those tests anymore >--- > t/Koha/SearchEngine/ElasticSearch/Indexer.t | 78 ------------------------ > t/Koha/SearchEngine/Elasticsearch.t | 93 ++++++++++++++--------------- > 2 files changed, 45 insertions(+), 126 deletions(-) > delete mode 100644 t/Koha/SearchEngine/ElasticSearch/Indexer.t > >diff --git a/t/Koha/SearchEngine/ElasticSearch/Indexer.t b/t/Koha/SearchEngine/ElasticSearch/Indexer.t >deleted file mode 100644 >index 17d5e6f2c9..0000000000 >--- a/t/Koha/SearchEngine/ElasticSearch/Indexer.t >+++ /dev/null >@@ -1,78 +0,0 @@ >-#!/usr/bin/perl >-# >-# This file is part of Koha. >-# >-# Koha is free software; you can redistribute it and/or modify it >-# under the terms of the GNU General Public License as published by >-# the Free Software Foundation; either version 3 of the License, or >-# (at your option) any later version. >-# >-# Koha is distributed in the hope that it will be useful, but >-# WITHOUT ANY WARRANTY; without even the implied warranty of >-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the >-# GNU General Public License for more details. >-# >-# You should have received a copy of the GNU General Public License >-# along with Koha; if not, see <http://www.gnu.org/licenses>. >- >-use Modern::Perl; >- >-use Test::More tests => 1; >-use Test::Exception; >- >-use t::lib::Mocks; >- >-use Test::MockModule; >- >-use MARC::Record; >-use Try::Tiny; >- >-use Koha::SearchEngine::Elasticsearch; >-use Koha::SearchEngine::Elasticsearch::Indexer; >- >-subtest '_sanitise_records() tests' => sub { >- plan tests => 5; >- >- my $indexer; >- ok( >- $indexer = Koha::SearchEngine::Elasticsearch::Indexer->new({ 'index' => $Koha::SearchEngine::Elasticsearch::BIBLIOS_INDEX }), >- 'Creating a new indexer object' >- ); >- >- my $record1 = MARC::Record->new(); >- $record1->append_fields( >- MARC::Field->new('999', '', '', 'c' => 1, 'd' => 2) >- ); >- >- my $record2 = MARC::Record->new(); >- $record2->append_fields( >- MARC::Field->new('999', '', '', 'c' => 3, 'd' => 4) >- ); >- my $records = [$record1, $record2]; >- >- my $biblionumbers = [5, 6]; >- >- $indexer->_sanitise_records($biblionumbers, $records); >- >- is( >- $record1->subfield('999', 'c'), >- '5', >- 'First record has 5 in 999c' >- ); >- is( >- $record1->subfield('999', 'd'), >- '5', >- 'First record has 5 in 999d' >- ); >- >- is( >- $record2->subfield('999', 'c'), >- '6', >- 'Second record has 6 in 999c' >- ); >- is( >- $record2->subfield('999', 'd'), >- '6', >- 'Second record has 6 in 999d' >- ); >-}; >\ No newline at end of file >diff --git a/t/Koha/SearchEngine/Elasticsearch.t b/t/Koha/SearchEngine/Elasticsearch.t >index 673babb131..993238db0a 100644 >--- a/t/Koha/SearchEngine/Elasticsearch.t >+++ b/t/Koha/SearchEngine/Elasticsearch.t >@@ -117,7 +117,7 @@ subtest 'get_elasticsearch_mappings() tests' => sub { > > subtest 'Koha::SearchEngine::Elasticsearch::marc_records_to_documents () tests' => sub { > >- plan tests => 50; >+ plan tests => 49; > > t::lib::Mocks::mock_preference('marcflavour', 'MARC21'); > t::lib::Mocks::mock_preference('ElasticsearchMARCFormat', 'ISO2709'); >@@ -322,27 +322,26 @@ subtest 'Koha::SearchEngine::Elasticsearch::marc_records_to_documents () tests' > > # First record: > is(scalar @{$docs}, 2, 'Two records converted to documents'); >- is($docs->[0][0], '1234567', 'First document biblionumber should be set as first element in document touple'); > >- is_deeply($docs->[0][1]->{control_number}, ['123'], 'First record control number should be set correctly'); >+ is_deeply($docs->[0]->{control_number}, ['123'], 'First record control number should be set correctly'); > >- is_deeply($docs->[0][1]->{'ff7-00'}, ['k'], 'First record ff7-00 should be set correctly'); >+ is_deeply($docs->[0]->{'ff7-00'}, ['k'], 'First record ff7-00 should be set correctly'); > >- is(scalar @{$docs->[0][1]->{author}}, 2, 'First document author field should contain two values'); >- is_deeply($docs->[0][1]->{author}, ['Author 1', 'Corp Author'], 'First document author field should be set correctly'); >+ is(scalar @{$docs->[0]->{author}}, 2, 'First document author field should contain two values'); >+ is_deeply($docs->[0]->{author}, ['Author 1', 'Corp Author'], 'First document author field should be set correctly'); > >- is(scalar @{$docs->[0][1]->{author__sort}}, 1, 'First document author__sort field should have a single value'); >- is_deeply($docs->[0][1]->{author__sort}, ['Author 1 Corp Author'], 'First document author__sort field should be set correctly'); >+ is(scalar @{$docs->[0]->{author__sort}}, 1, 'First document author__sort field should have a single value'); >+ is_deeply($docs->[0]->{author__sort}, ['Author 1 Corp Author'], 'First document author__sort field should be set correctly'); > >- is(scalar @{$docs->[0][1]->{title__sort}}, 1, 'First document title__sort field should have a single'); >- is_deeply($docs->[0][1]->{title__sort}, ['Title: first record Title: first record'], 'First document title__sort field should be set correctly'); >+ is(scalar @{$docs->[0]->{title__sort}}, 1, 'First document title__sort field should have a single'); >+ is_deeply($docs->[0]->{title__sort}, ['Title: first record Title: first record'], 'First document title__sort field should be set correctly'); > >- is(scalar @{$docs->[0][1]->{title_wildcard}}, 2, 'First document title_wildcard field should have two values'); >- is_deeply($docs->[0][1]->{title_wildcard}, ['Title:', 'first record'], 'First document title_wildcard field should be set correctly'); >+ is(scalar @{$docs->[0]->{title_wildcard}}, 2, 'First document title_wildcard field should have two values'); >+ is_deeply($docs->[0]->{title_wildcard}, ['Title:', 'first record'], 'First document title_wildcard field should be set correctly'); > >- is(scalar @{$docs->[0][1]->{author__suggestion}}, 2, 'First document author__suggestion field should contain two values'); >+ is(scalar @{$docs->[0]->{author__suggestion}}, 2, 'First document author__suggestion field should contain two values'); > is_deeply( >- $docs->[0][1]->{author__suggestion}, >+ $docs->[0]->{author__suggestion}, > [ > { > 'input' => 'Author 1' >@@ -354,9 +353,9 @@ subtest 'Koha::SearchEngine::Elasticsearch::marc_records_to_documents () tests' > 'First document author__suggestion field should be set correctly' > ); > >- is(scalar @{$docs->[0][1]->{title__suggestion}}, 3, 'First document title__suggestion field should contain three values'); >+ is(scalar @{$docs->[0]->{title__suggestion}}, 3, 'First document title__suggestion field should contain three values'); > is_deeply( >- $docs->[0][1]->{title__suggestion}, >+ $docs->[0]->{title__suggestion}, > [ > { 'input' => 'Title:' }, > { 'input' => 'first record' }, >@@ -365,87 +364,87 @@ subtest 'Koha::SearchEngine::Elasticsearch::marc_records_to_documents () tests' > 'First document title__suggestion field should be set correctly' > ); > >- ok(!(defined $docs->[0][1]->{title__facet}), 'First document should have no title__facet field'); >+ ok(!(defined $docs->[0]->{title__facet}), 'First document should have no title__facet field'); > >- is(scalar @{$docs->[0][1]->{author__facet}}, 2, 'First document author__facet field should have two values'); >+ is(scalar @{$docs->[0]->{author__facet}}, 2, 'First document author__facet field should have two values'); > is_deeply( >- $docs->[0][1]->{author__facet}, >+ $docs->[0]->{author__facet}, > ['Author 1', 'Corp Author'], > 'First document author__facet field should be set correctly' > ); > >- is(scalar @{$docs->[0][1]->{items_withdrawn_status}}, 2, 'First document items_withdrawn_status field should have two values'); >+ is(scalar @{$docs->[0]->{items_withdrawn_status}}, 2, 'First document items_withdrawn_status field should have two values'); > is_deeply( >- $docs->[0][1]->{items_withdrawn_status}, >+ $docs->[0]->{items_withdrawn_status}, > ['false', 'true'], > 'First document items_withdrawn_status field should be set correctly' > ); > > is( >- $docs->[0][1]->{sum_item_price}, >+ $docs->[0]->{sum_item_price}, > '250.5', > 'First document sum_item_price field should be set correctly' > ); > >- ok(defined $docs->[0][1]->{marc_data}, 'First document marc_data field should be set'); >- ok(defined $docs->[0][1]->{marc_format}, 'First document marc_format field should be set'); >- is($docs->[0][1]->{marc_format}, 'base64ISO2709', 'First document marc_format should be set correctly'); >+ ok(defined $docs->[0]->{marc_data}, 'First document marc_data field should be set'); >+ ok(defined $docs->[0]->{marc_format}, 'First document marc_format field should be set'); >+ is($docs->[0]->{marc_format}, 'base64ISO2709', 'First document marc_format should be set correctly'); > >- my $decoded_marc_record = $see->decode_record_from_result($docs->[0][1]); >+ my $decoded_marc_record = $see->decode_record_from_result($docs->[0]); > > ok($decoded_marc_record->isa('MARC::Record'), "base64ISO2709 record successfully decoded from result"); > is($decoded_marc_record->as_usmarc(), $marc_record_1->as_usmarc(), "Decoded base64ISO2709 record has same data as original record"); > >- is(scalar @{$docs->[0][1]->{type_of_record}}, 1, 'First document type_of_record field should have one value'); >+ is(scalar @{$docs->[0]->{type_of_record}}, 1, 'First document type_of_record field should have one value'); > is_deeply( >- $docs->[0][1]->{type_of_record}, >+ $docs->[0]->{type_of_record}, > ['a'], > 'First document type_of_record field should be set correctly' > ); > >- is(scalar @{$docs->[0][1]->{type_of_record_and_bib_level}}, 1, 'First document type_of_record_and_bib_level field should have one value'); >+ is(scalar @{$docs->[0]->{type_of_record_and_bib_level}}, 1, 'First document type_of_record_and_bib_level field should have one value'); > is_deeply( >- $docs->[0][1]->{type_of_record_and_bib_level}, >+ $docs->[0]->{type_of_record_and_bib_level}, > ['am'], > 'First document type_of_record_and_bib_level field should be set correctly' > ); > >- is(scalar @{$docs->[0][1]->{isbn}}, 4, 'First document isbn field should contain four values'); >- is_deeply($docs->[0][1]->{isbn}, ['978-1-56619-909-4', '9781566199094', '1-56619-909-3', '1566199093'], 'First document isbn field should be set correctly'); >+ is(scalar @{$docs->[0]->{isbn}}, 4, 'First document isbn field should contain four values'); >+ is_deeply($docs->[0]->{isbn}, ['978-1-56619-909-4', '9781566199094', '1-56619-909-3', '1566199093'], 'First document isbn field should be set correctly'); > > is_deeply( >- $docs->[0][1]->{'local_classification'}, >+ $docs->[0]->{'local_classification'}, > [$callno, $callno2, $long_callno], > 'First document local_classification field should be set correctly' > ); > > # Second record: > >- is(scalar @{$docs->[1][1]->{author}}, 1, 'Second document author field should contain one value'); >- is_deeply($docs->[1][1]->{author}, ['Author 2'], 'Second document author field should be set correctly'); >+ is(scalar @{$docs->[1]->{author}}, 1, 'Second document author field should contain one value'); >+ is_deeply($docs->[1]->{author}, ['Author 2'], 'Second document author field should be set correctly'); > >- is(scalar @{$docs->[1][1]->{items_withdrawn_status}}, 1, 'Second document items_withdrawn_status field should have one value'); >+ is(scalar @{$docs->[1]->{items_withdrawn_status}}, 1, 'Second document items_withdrawn_status field should have one value'); > is_deeply( >- $docs->[1][1]->{items_withdrawn_status}, >+ $docs->[1]->{items_withdrawn_status}, > ['true'], > 'Second document items_withdrawn_status field should be set correctly' > ); > > is( >- $docs->[1][1]->{sum_item_price}, >+ $docs->[1]->{sum_item_price}, > 0, > 'Second document sum_item_price field should be set correctly' > ); > > is_deeply( >- $docs->[1][1]->{local_classification__sort}, >+ $docs->[1]->{local_classification__sort}, > [substr($long_callno, 0, 255)], > 'Second document local_classification__sort field should be set correctly' > ); > > # Mappings marc_type: > >- ok(!(defined $docs->[0][1]->{unimarc_title}), "No mapping when marc_type doesn't match marc flavour"); >+ ok(!(defined $docs->[0]->{unimarc_title}), "No mapping when marc_type doesn't match marc flavour"); > > # Marc serialization format fallback for records exceeding ISO2709 max record size > >@@ -468,9 +467,9 @@ subtest 'Koha::SearchEngine::Elasticsearch::marc_records_to_documents () tests' > > $docs = $see->marc_records_to_documents([$large_marc_record]); > >- is($docs->[0][1]->{marc_format}, 'MARCXML', 'For record exceeding max record size marc_format should be set correctly'); >+ is($docs->[0]->{marc_format}, 'MARCXML', 'For record exceeding max record size marc_format should be set correctly'); > >- $decoded_marc_record = $see->decode_record_from_result($docs->[0][1]); >+ $decoded_marc_record = $see->decode_record_from_result($docs->[0]); > > ok($decoded_marc_record->isa('MARC::Record'), "MARCXML record successfully decoded from result"); > is($decoded_marc_record->as_xml_record(), $large_marc_record->as_xml_record(), "Decoded MARCXML record has same data as original record"); >@@ -521,7 +520,7 @@ subtest 'Koha::SearchEngine::Elasticsearch::marc_records_to_documents () tests' > > subtest 'Koha::SearchEngine::Elasticsearch::marc_records_to_documents_array () tests' => sub { > >- plan tests => 6; >+ plan tests => 5; > > t::lib::Mocks::mock_preference('marcflavour', 'MARC21'); > t::lib::Mocks::mock_preference('ElasticsearchMARCFormat', 'ARRAY'); >@@ -588,13 +587,11 @@ subtest 'Koha::SearchEngine::Elasticsearch::marc_records_to_documents_array () t > # First record: > is(scalar @{$docs}, 2, 'Two records converted to documents'); > >- is($docs->[0][0], '1234567', 'First document biblionumber should be set as first element in document touple'); >+ is_deeply($docs->[0]->{control_number}, ['123'], 'First record control number should be set correctly'); > >- is_deeply($docs->[0][1]->{control_number}, ['123'], 'First record control number should be set correctly'); >+ is($docs->[0]->{marc_format}, 'ARRAY', 'First document marc_format should be set correctly'); > >- is($docs->[0][1]->{marc_format}, 'ARRAY', 'First document marc_format should be set correctly'); >- >- my $decoded_marc_record = $see->decode_record_from_result($docs->[0][1]); >+ my $decoded_marc_record = $see->decode_record_from_result($docs->[0]); > > ok($decoded_marc_record->isa('MARC::Record'), "ARRAY record successfully decoded from result"); > is($decoded_marc_record->as_usmarc(), $marc_record_1->as_usmarc(), "Decoded ARRAY record has same data as original record"); >-- >2.11.0
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 23630
:
92971
|
93242
|
94823
| 94912