From 0c8c6dc334e1751f0fa9e314419554f5387c0f50 Mon Sep 17 00:00:00 2001 From: Jonathan Druart Date: Wed, 18 Jul 2018 18:12:17 -0300 Subject: [PATCH] Bug 21086: Fix wrong mock of DateTime->now prove t/db_dependent/DecreaseLoanHighHolds.t t/db_dependent/DecreaseLoanHighHolds.t .. 1/17 Can't locate object method "truncate" via package "80" (perhaps you forgot to load "80"?) at /home/vagrant/kohaclone/C4/Circulation.pm line 3497. What is happening: We mock DateTime->now in the script to avoid the date comparaisons to fail on slow servers (see bug 19705). my $now_value = DateTime->now(); my $mocked_datetime = Test::MockModule->new('DateTime'); $mocked_datetime->mock( 'now', sub { return $now_value; } ); Since bug 20287, we have the following calls: Koha::Patron->store => Koha::Patron::Category->get_expiry_date which does: 221 return $date->add( months => $self->enrolmentperiod, end_of_month => 'limit' ); as enrolmentperiod is generated by t::lib::TestBuilder, it can be quite big, and so the date change from one call to the others. The failure is actually coming from the date becoming > 9999, which is not handled correctly, on purpose, by Koha::DateUtils (infinite) On the way this patch fixes the other occurrence, in Sitemapper.t (just in case) Test plan: Make sure the tests pass now. Signed-off-by: Katrin Fischer Signed-off-by: Josef Moravec --- t/db_dependent/DecreaseLoanHighHolds.t | 2 +- t/db_dependent/Sitemapper.t | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/t/db_dependent/DecreaseLoanHighHolds.t b/t/db_dependent/DecreaseLoanHighHolds.t index b35dbfd..a85048f 100755 --- a/t/db_dependent/DecreaseLoanHighHolds.t +++ b/t/db_dependent/DecreaseLoanHighHolds.t @@ -45,7 +45,7 @@ $dbh->do('DELETE FROM items'); my $now_value = DateTime->now(); my $mocked_datetime = Test::MockModule->new('DateTime'); -$mocked_datetime->mock( 'now', sub { return $now_value; } ); +$mocked_datetime->mock( 'now', sub { return $now_value->clone; } ); my $library = $builder->build( { source => 'Branch' } ); my $category = $builder->build( { source => 'Category' } ); diff --git a/t/db_dependent/Sitemapper.t b/t/db_dependent/Sitemapper.t index bf2576b..a4cbcac 100755 --- a/t/db_dependent/Sitemapper.t +++ b/t/db_dependent/Sitemapper.t @@ -34,7 +34,7 @@ BEGIN { my $now_value = DateTime->now(); my $mocked_datetime = Test::MockModule->new('DateTime'); -$mocked_datetime->mock( 'now', sub { return $now_value; } ); +$mocked_datetime->mock( 'now', sub { return $now_value->clone; } ); sub slurp { my $file = shift; -- 2.1.4