From b0c2e6d3a37a2fa3dddfdd53fa62efd71b7af425 Mon Sep 17 00:00:00 2001 From: Kyle M Hall Date: Mon, 2 Nov 2020 08:11:58 -0500 Subject: [PATCH] Bug 14708: (QA follow-up) Throw exception when deleting anonymous borrower --- Koha/Exceptions/Patron.pm | 3 +++ Koha/Patron.pm | 2 +- t/db_dependent/Koha/Patrons.t | 9 +++++++-- 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/Koha/Exceptions/Patron.pm b/Koha/Exceptions/Patron.pm index 8eac9c9366..069ed942c2 100644 --- a/Koha/Exceptions/Patron.pm +++ b/Koha/Exceptions/Patron.pm @@ -9,6 +9,9 @@ use Exception::Class ( 'Koha::Exceptions::Patron::FailedDelete' => { description => "Deleting patron failed" }, + 'Koha::Exceptions::Patron::FailedDeleteAnonymousPatron' => { + description => "Deleting patron failed, AnonymousPatron is not deleteable" + }, ); 1; diff --git a/Koha/Patron.pm b/Koha/Patron.pm index 8ff4462df1..14385aad9b 100644 --- a/Koha/Patron.pm +++ b/Koha/Patron.pm @@ -361,7 +361,7 @@ sub delete { my ($self) = @_; my $anonymous_patron = C4::Context->preference("AnonymousPatron"); - return $self if $anonymous_patron && $self->id eq $anonymous_patron; + Koha::Exceptions::Patron::FailedDeleteAnonymousPatron->throw() if $anonymous_patron && $self->id eq $anonymous_patron; $self->_result->result_source->schema->txn_do( sub { diff --git a/t/db_dependent/Koha/Patrons.t b/t/db_dependent/Koha/Patrons.t index 21b62e49ae..579fb308be 100755 --- a/t/db_dependent/Koha/Patrons.t +++ b/t/db_dependent/Koha/Patrons.t @@ -1037,11 +1037,16 @@ subtest 'search_patrons_to_anonymise & anonymise_issue_history' => sub { t::lib::Mocks::mock_preference( 'AnonymousPatron', $anonymous->{borrowernumber} ); subtest 'Anonymous Patron should be undeleteable' => sub { - plan tests => 1; + plan tests => 2; my $anonymous_patron = Koha::Patrons->find( $anonymous->{borrowernumber} ); - $anonymous_patron->delete(); + warn "X" x 100; + throws_ok { $anonymous_patron->delete(); } + 'Koha::Exceptions::Patron::FailedDeleteAnonymousPatron', + 'Attempt to delete anonymous patron throws exception.'; + warn "Y" x 100; $anonymous_patron = Koha::Patrons->find( $anonymous->{borrowernumber} ); + warn "X" x 100; is( $anonymous_patron->id, $anonymous->{borrowernumber}, "Anonymous Patron was not deleted" ); }; -- 2.24.1 (Apple Git-126)