Bugzilla – Attachment 63451 Details for
Bug 18434
Elasticsearch indexing broken with newer catmandu version
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Bug 18434: Add tests for K:SE:E::get_fixer_rules
Bug-18434-Add-tests-for-KSEEgetfixerrules.patch (text/plain), 4.97 KB, created by
Tomás Cohen Arazi (tcohen)
on 2017-05-12 18:47:05 UTC
(
hide
)
Description:
Bug 18434: Add tests for K:SE:E::get_fixer_rules
Filename:
MIME Type:
Creator:
Tomás Cohen Arazi (tcohen)
Created:
2017-05-12 18:47:05 UTC
Size:
4.97 KB
patch
obsolete
>From 8aea90ec511b1497d9b22f1c79f35eecd68ec5a5 Mon Sep 17 00:00:00 2001 >From: Tomas Cohen Arazi <tomascohen@theke.io> >Date: Fri, 12 May 2017 15:39:25 -0300 >Subject: [PATCH] Bug 18434: Add tests for K:SE:E::get_fixer_rules > >This patch tries to introduce exhaustive tests for this class method. >I didn't try to provide a regression test for the current bug per-se, but >cover the current method behaviour as much as I could. > >A minor bug is highlighted by this new tests, I'll provide a followup for it. > >To test: >- Run: > $ sudo koha-shell kohadev > k$ de kohaclone > k$ prove t/db_dependent/Koha_Elasticsearch.t >=> FAIL: The returned fixer rules are not the expected ones > >Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io> >--- > t/db_dependent/Koha_Elasticsearch.t | 104 ++++++++++++++++++++++++++++++++++-- > 1 file changed, 101 insertions(+), 3 deletions(-) > >diff --git a/t/db_dependent/Koha_Elasticsearch.t b/t/db_dependent/Koha_Elasticsearch.t >index eb24cbb..6823836 100644 >--- a/t/db_dependent/Koha_Elasticsearch.t >+++ b/t/db_dependent/Koha_Elasticsearch.t >@@ -15,9 +15,107 @@ > # You should have received a copy of the GNU General Public License > # along with Koha; if not, see <http://www.gnu.org/licenses> > >-use strict; >-use warnings; >+use Modern::Perl; > >-use Test::More tests => 1; # last test to print >+use Test::More tests => 2; >+use Test::MockModule; >+ >+use t::lib::Mocks; >+ >+my $schema = Koha::Database->schema; > > use_ok('Koha::SearchEngine::Elasticsearch'); >+ >+subtest 'get_fixer_rules() tests' => sub { >+ >+ plan tests => 26; >+ >+ $schema->storage->txn_begin; >+ >+ t::lib::Mocks::mock_preference( 'marcflavour', 'MARC21' ); >+ >+ my $name; >+ my $type; >+ my $facet; >+ my $suggestible; >+ my $sort; >+ my $marc_type; >+ my $marc_field; >+ >+ my $se = Test::MockModule->new( 'Koha::SearchEngine::Elasticsearch' ); >+ $se->mock( '_foreach_mapping', sub { >+ my ($self, $sub ) = @_; >+ >+ return $sub->( >+ $name, >+ $type, >+ $facet, >+ $suggestible, >+ $sort, >+ $marc_type, >+ $marc_field >+ ); >+ }); >+ >+ my $see = Koha::SearchEngine::Elasticsearch->new({ index => 'biblios' }); >+ >+ $name = 'author'; >+ $type = 'string'; >+ $facet = 1; >+ $suggestible = 1; >+ $sort = '~'; >+ $marc_type = 'marc21'; >+ $marc_field = '100a'; >+ >+ my $result = $see->get_fixer_rules(); >+ is( $result->[0], q{marc_map('} . $marc_field . q{','} . $name . q{.$append' , -split => 1)}); >+ is( $result->[1], q{marc_map('} . $marc_field . q{','} . $name . q{__facet' , -split => 1)}); >+ is( $result->[2], q{marc_map('} . $marc_field . q{','} . $name . q{__suggestion.input.$append')}); >+ is( $result->[3], q{marc_map('} . $marc_field . q{','} . $name . q{__sort' , -split => 1)}); >+ is( $result->[4], q{move_field(_id,es_id)}); >+ >+ $type = 'boolean'; >+ $result = $see->get_fixer_rules(); >+ is( $result->[0], q{marc_map('} . $marc_field . q{','} . $name . q{.$append' , -split => 1)}); >+ is( $result->[1], q{marc_map('} . $marc_field . q{','} . $name . q{__facet' , -split => 1)}); >+ is( $result->[2], q{marc_map('} . $marc_field . q{','} . $name . q{__suggestion.input.$append')}); >+ is( $result->[3], q{unless exists('} . $name . q{') add_field('} . $name . q{', 0) end}); >+ is( $result->[4], q{marc_map('} . $marc_field . q{','} . $name . q{__sort' , -split => 1)}); >+ is( $result->[5], q{move_field(_id,es_id)}); >+ >+ $type = 'sum'; >+ $result = $see->get_fixer_rules(); >+ is( $result->[0], q{marc_map('} . $marc_field . q{','} . $name . q{.$append' )}); >+ is( $result->[1], q{marc_map('} . $marc_field . q{','} . $name . q{__facet' )}); >+ is( $result->[2], q{marc_map('} . $marc_field . q{','} . $name . q{__suggestion.input.$append')}); >+ is( $result->[3], q{sum('} . $name . q{')}); >+ is( $result->[4], q{marc_map('} . $marc_field . q{','} . $name . q{__sort' )}); >+ is( $result->[5], q{move_field(_id,es_id)}); >+ >+ $type = 'string'; >+ $facet = 0; >+ >+ $result = $see->get_fixer_rules(); >+ is( $result->[0], q{marc_map('} . $marc_field . q{','} . $name . q{.$append' , -split => 1)}); >+ is( $result->[1], q{marc_map('} . $marc_field . q{','} . $name . q{__suggestion.input.$append')}); >+ is( $result->[2], q{marc_map('} . $marc_field . q{','} . $name . q{__sort' , -split => 1)}); >+ is( $result->[3], q{move_field(_id,es_id)}); >+ >+ $suggestible = 0; >+ >+ $result = $see->get_fixer_rules(); >+ is( $result->[0], q{marc_map('} . $marc_field . q{','} . $name . q{.$append' , -split => 1)}); >+ is( $result->[1], q{marc_map('} . $marc_field . q{','} . $name . q{__sort' , -split => 1)}); >+ is( $result->[2], q{move_field(_id,es_id)}); >+ >+ t::lib::Mocks::mock_preference( 'marcflavour', 'UNIMARC' ); >+ >+ $result = $see->get_fixer_rules(); >+ is( $result->[0], q{move_field(_id,es_id)}); >+ is( $result->[1], undef, q{No mapping when marc_type doesn't match marchflavour} ); >+ >+ $schema->storage->txn_rollback; >+ >+}; >+ >+1; >-- >2.7.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 18434
:
62171
|
62702
|
63451
|
63452
|
63453
|
63473
|
63477
|
63478
|
63479
|
64386
|
64773
|
64786
|
64787
|
64788
|
64789
|
64790