Bugzilla – Attachment 119529 Details for
Bug 23271
Koha::Patron::Category should use Koha::Object::Limit::Library
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Bug 23271: (QA follow-up) Make search_with_library_limits fallback to userenv if required
Bug-23271-QA-follow-up-Make-searchwithlibrarylimit.patch (text/plain), 5.62 KB, created by
Tomás Cohen Arazi (tcohen)
on 2021-04-13 12:14:58 UTC
(
hide
)
Description:
Bug 23271: (QA follow-up) Make search_with_library_limits fallback to userenv if required
Filename:
MIME Type:
Creator:
Tomás Cohen Arazi (tcohen)
Created:
2021-04-13 12:14:58 UTC
Size:
5.62 KB
patch
obsolete
>From 290ca9aaca40c38b9190a2bf7e94eeb19beb78c8 Mon Sep 17 00:00:00 2001 >From: Tomas Cohen Arazi <tomascohen@theke.io> >Date: Tue, 13 Apr 2021 08:58:58 -0300 >Subject: [PATCH] Bug 23271: (QA follow-up) Make search_with_library_limits > fallback to userenv if required > >This patch makes the generic method rely on C4::Context->userenv if the >library_id is not passed. > >To test: >1. Apply this patch >2. Run: > $ kshell > k$ prove t/db_dependent/Koha/Patron/Attribute/Types.t >=> SUCCESS: Tests pass! >3. Sign off :-D > >Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io> >--- > Koha/Objects/Limit/Library.pm | 4 ++ > Koha/Patron/Categories.pm | 6 +-- > t/db_dependent/Koha/Patron/Attribute/Types.t | 48 +++++++++----------- > 3 files changed, 27 insertions(+), 31 deletions(-) > >diff --git a/Koha/Objects/Limit/Library.pm b/Koha/Objects/Limit/Library.pm >index 722ff887de7..2f9d2d2ec64 100644 >--- a/Koha/Objects/Limit/Library.pm >+++ b/Koha/Objects/Limit/Library.pm >@@ -17,6 +17,7 @@ package Koha::Objects::Limit::Library; > > use Modern::Perl; > >+use C4::Context; > use Koha::Database; > > =head1 NAME >@@ -53,6 +54,9 @@ limits > sub search_with_library_limits { > my ( $self, $params, $attributes, $library_id ) = @_; > >+ $library_id //= C4::Context->userenv->{branch} >+ if defined C4::Context->userenv; >+ > return $self->search( $params, $attributes ) unless $library_id; > > my $library_limits = $self->object_class()->_library_limits; >diff --git a/Koha/Patron/Categories.pm b/Koha/Patron/Categories.pm >index 7d651f19699..8ee320d0c57 100644 >--- a/Koha/Patron/Categories.pm >+++ b/Koha/Patron/Categories.pm >@@ -17,10 +17,6 @@ package Koha::Patron::Categories; > > use Modern::Perl; > >-use Carp; >- >-use C4::Context; # Sigh... >- > use Koha::Database; > > use Koha::Patron::Category; >@@ -33,7 +29,7 @@ Koha::Patron::Categories - Koha Patron Category Object set class > > =head1 API > >-=head2 Class Methods >+=head2 Class methods > > =cut > >diff --git a/t/db_dependent/Koha/Patron/Attribute/Types.t b/t/db_dependent/Koha/Patron/Attribute/Types.t >index a8fd71d07fa..3df82bcfba7 100755 >--- a/t/db_dependent/Koha/Patron/Attribute/Types.t >+++ b/t/db_dependent/Koha/Patron/Attribute/Types.t >@@ -388,31 +388,19 @@ subtest 'replace_library_limits() tests' => sub { > > subtest 'search_with_library_limits() tests' => sub { > >- plan tests => 4; >+ plan tests => 5; > > $schema->storage->txn_begin; > > # Cleanup before running the tests > Koha::Patron::Attribute::Types->search()->delete(); > >- my $object_code_1 >- = Koha::Patron::Attribute::Type->new( { code => 'code_1', description => 'a description for code_1' } ) >- ->store(); >- >- my $object_code_2 >- = Koha::Patron::Attribute::Type->new( { code => 'code_2', description => 'a description for code_2' } ) >- ->store(); >+ my $object_code_1 = $builder->build_object({ class => 'Koha::Patron::Attribute::Types', value => { code => 'code_1' } }); >+ my $object_code_2 = $builder->build_object({ class => 'Koha::Patron::Attribute::Types', value => { code => 'code_2' } }); >+ my $object_code_3 = $builder->build_object({ class => 'Koha::Patron::Attribute::Types', value => { code => 'code_3' } }); >+ my $object_code_4 = $builder->build_object({ class => 'Koha::Patron::Attribute::Types', value => { code => 'code_4' } }); > >- my $object_code_3 >- = Koha::Patron::Attribute::Type->new( { code => 'code_3', description => 'a description for code_3' } ) >- ->store(); >- >- my $object_code_4 >- = Koha::Patron::Attribute::Type->new( { code => 'code_4', description => 'a description for code_4' } ) >- ->store(); >- >- is( Koha::Patron::Attribute::Types->search()->count, >- 4, 'Three objects created' ); >+ is( Koha::Patron::Attribute::Types->search()->count, 4, 'Three objects created' ); > > my $branch_1 = $builder->build( { source => 'Branch' } )->{branchcode}; > my $branch_2 = $builder->build( { source => 'Branch' } )->{branchcode}; >@@ -421,15 +409,23 @@ subtest 'search_with_library_limits() tests' => sub { > $object_code_2->library_limits( [$branch_2] ); > $object_code_3->library_limits( [ $branch_1, $branch_2 ] ); > >- is( Koha::Patron::Attribute::Types->search_with_library_limits( {}, {}, $branch_1 )->count, >- 3, '3 attribute types are available for the specified branch' ); >- is( Koha::Patron::Attribute::Types->search_with_library_limits( {}, {}, $branch_2 )->count, >- 3, '3 attribute types are available for the specified branch' ); >- is( Koha::Patron::Attribute::Types->search_with_library_limits( {}, {}, undef )->count, >- 4, '4 attribute types are available with no library passed' >- ); >+ my $results = Koha::Patron::Attribute::Types->search_with_library_limits( {}, { order_by => 'code' }, $branch_1 ); >+ >+ is( $results->count, 3, '3 attribute types are available for the specified branch' ); >+ >+ $results = Koha::Patron::Attribute::Types->search_with_library_limits( {}, { order_by => 'code' }, $branch_2 ); >+ >+ is( $results->count, 3, '3 attribute types are available for the specified branch' ); >+ >+ $results = Koha::Patron::Attribute::Types->search_with_library_limits( {}, { order_by => 'code' }, undef ); >+ >+ is( $results->count, 4, 'All attribute types are available with no library pssed' ); >+ >+ t::lib::Mocks::mock_userenv({ branchcode => $branch_2 }); >+ >+ $results = Koha::Patron::Attribute::Types->search_with_library_limits( {}, { order_by => 'code' }, undef ); > >- # TODO test if filter_by_branch_limitations restriced on logged-in-user's branch >+ is( $results->count, 3, '3 attribute types are available with no library passed' ); > > $schema->storage->txn_rollback; > }; >-- >2.31.1
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 23271
:
94292
|
94293
|
94294
|
119503
|
119504
|
119505
|
119529
|
119530
|
119531
|
119532
|
119533
|
119537
|
119579
|
119580
|
119581
|
119582
|
119583
|
119584
|
119772
|
119773
|
119774
|
119775
|
119776
|
119777
|
119939
|
119956
|
119957
|
120054