From d5a792ddf5970205b38cf20231f1a249318730f3 Mon Sep 17 00:00:00 2001 From: Tomas Cohen Arazi Date: Tue, 29 Jun 2021 12:24:52 -0300 Subject: [PATCH] Bug 28615: (follow-up) Disable strict mode explicitly So Debian 9's version of Test::MockModule doens't have ->redefine, and Ubuntu 20.04's doesn't recognise qw(nostrict). So the only solution is to just remove the keywords use completely and move back to using ->mock, as the rest of the codebase. FIXME: using ->mock might be hiding some errors (like a method not being defined/removed) and should be avoided. ->redefine will explode if the method doesn't already exist, which is what we want, to catch this kind of errors. That's why ->mock in strict mode is forbidden. We should try packaging a newer Test::MockModule ourselves. Tested on master-buster, master-stretch and master-focal. Signed-off-by: Tomas Cohen Arazi --- t/lib/Mocks/Logger.pm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/t/lib/Mocks/Logger.pm b/t/lib/Mocks/Logger.pm index ff4bdb3ea9..22c967a58c 100644 --- a/t/lib/Mocks/Logger.pm +++ b/t/lib/Mocks/Logger.pm @@ -20,7 +20,7 @@ use Modern::Perl; use base 'Test::Builder::Module'; use base qw(Class::Accessor); -use Test::MockModule qw(strict); +use Test::MockModule; use Test::MockObject; my $CLASS = __PACKAGE__; @@ -48,7 +48,7 @@ sub new { my $mocked_logger_class = Test::MockModule->new("Koha::Logger"); my $mocked_logger = Test::MockObject->new(); - $mocked_logger_class->redefine( + $mocked_logger_class->mock( 'get', sub { return $mocked_logger; -- 2.32.0