Bugzilla – Attachment 89864 Details for
Bug 22930
Make TestBuilder more strict about wrong arguments
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Bug 22930: Make TestBuilder->build_object explodes if parameters are wrong
Bug-22930-Make-TestBuilder-buildobject-explodes-if.patch (text/plain), 3.37 KB, created by
Jonathan Druart
on 2019-05-16 17:58:17 UTC
(
hide
)
Description:
Bug 22930: Make TestBuilder->build_object explodes if parameters are wrong
Filename:
MIME Type:
Creator:
Jonathan Druart
Created:
2019-05-16 17:58:17 UTC
Size:
3.37 KB
patch
obsolete
>From aaaefafc576926fdbb0d50ffa014545f32c5244a Mon Sep 17 00:00:00 2001 >From: Jonathan Druart <jonathan.druart@bugs.koha-community.org> >Date: Thu, 16 May 2019 12:56:07 -0500 >Subject: [PATCH] Bug 22930: Make TestBuilder->build_object explodes if > parameters are wrong > >This patch implements bug 15339 for build_object. >We want it to warn if the call is wrong. > >Test plan: >Make sure the tests are still returning green >--- > t/db_dependent/TestBuilder.t | 30 ++++++++++++++++++++++-------- > t/lib/TestBuilder.pm | 3 +++ > 2 files changed, 25 insertions(+), 8 deletions(-) > >diff --git a/t/db_dependent/TestBuilder.t b/t/db_dependent/TestBuilder.t >index 3b6aa20e19..09fcb225b1 100644 >--- a/t/db_dependent/TestBuilder.t >+++ b/t/db_dependent/TestBuilder.t >@@ -351,7 +351,7 @@ subtest 'Default values' => sub { > > subtest 'build_object() tests' => sub { > >- plan tests => 6; >+ plan tests => 5; > > $builder = t::lib::TestBuilder->new(); > >@@ -372,12 +372,6 @@ subtest 'build_object() tests' => sub { > $categorycode, 'Category code correctly set' ); > is( $issuing_rule->itemtype, $itemtype, 'Item type correctly set' ); > >- warning_is { $issuing_rule = $builder->build_object( {} ); } >- { carped => 'Missing class param' }, >- 'The class parameter is mandatory, raises a warning if absent'; >- is( $issuing_rule, undef, >- 'If the class parameter is missing, undef is returned' ); >- > subtest 'Test all classes' => sub { > my $Koha_modules_dir = dirname(__FILE__) . '/../../Koha'; > my @koha_object_based_modules = `/bin/grep -rl -e '^sub object_class' $Koha_modules_dir`; >@@ -394,10 +388,25 @@ subtest 'build_object() tests' => sub { > is( ref($object), $module->object_class, "Testing $module" ); > } > }; >+ >+ subtest 'test parameters' => sub { >+ plan tests => 3; >+ >+ warning_is { $issuing_rule = $builder->build_object( {} ); } >+ { carped => 'Missing class param' }, >+ 'The class parameter is mandatory, raises a warning if absent'; >+ is( $issuing_rule, undef, >+ 'If the class parameter is missing, undef is returned' ); >+ >+ warnings_like { >+ $builder->build_object( >+ { class => 'Koha::Patrons', categorycode => 'foobar' } ); >+ } qr{Unknown parameter\(s\): categorycode}, ""; >+ }; > }; > > subtest '->build parameter' => sub { >- plan tests => 3; >+ plan tests => 4; > > # Test to make sure build() warns user of unknown parameters. > warnings_are { >@@ -421,6 +430,11 @@ subtest '->build parameter' => sub { > zource => 'Branch', # Intentional spelling error > }) > } qr/Source parameter not specified/, "Catch warning on missing source"; >+ >+ warnings_like { >+ $builder->build( >+ { source => 'Borrower', categorycode => 'foobar' } ); >+ } qr{Unknown parameter\(s\): categorycode}, ""; > }; > > $schema->storage->txn_rollback; >diff --git a/t/lib/TestBuilder.pm b/t/lib/TestBuilder.pm >index 4385adabe4..3bfcb86e0f 100644 >--- a/t/lib/TestBuilder.pm >+++ b/t/lib/TestBuilder.pm >@@ -76,6 +76,9 @@ sub build_object { > return; > } > >+ my @unknowns = grep( !/^(class|value)$/, keys %{ $params }); >+ carp "Unknown parameter(s): ", join( ', ', @unknowns ) if scalar @unknowns; >+ > load $class; > my $source = $class->_type; > my @pks = $self->schema->source( $class->_type )->primary_columns; >-- >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 22930
:
89864
|
89882
|
89883