From 76dc84a7558d6f232afe05359c16aeb98d61a524 Mon Sep 17 00:00:00 2001 From: Martin Renvoize Date: Fri, 8 Jun 2018 15:21:22 +0100 Subject: [PATCH] Bug 20906: Prevent test failures due to precision changes (2) Signed-off-by: Tomas Cohen Arazi Signed-off-by: Nick Clemens Signed-off-by: Martin Renvoize (cherry picked from commit a19c161675840c7a5f6546da3d678149d31e260b) Signed-off-by: Fridolin Somers --- t/db_dependent/Bookseller.t | 44 +++++++++++++++++++++++-------------- 1 file changed, 28 insertions(+), 16 deletions(-) diff --git a/t/db_dependent/Bookseller.t b/t/db_dependent/Bookseller.t index 416974c1c2..1c64295563 100644 --- a/t/db_dependent/Bookseller.t +++ b/t/db_dependent/Bookseller.t @@ -66,8 +66,8 @@ my $sample_supplier1 = { gstreg => 1, listincgst => 1, invoiceincgst => 1, - tax_rate => '1.0000', - discount => '1.0000', + tax_rate => '1.0000', + discount => 1.0000, notes => 'notes1', deliverytime => undef }; @@ -86,8 +86,8 @@ my $sample_supplier2 = { gstreg => 1, listincgst => 1, invoiceincgst => 1, - tax_rate => '2.0000', - discount => '2.0000', + tax_rate => '2.0000', + discount => 2.0000, notes => 'notes2', deliverytime => 2 }; @@ -117,7 +117,7 @@ for my $bookseller ( @bookseller2 ) { } $sample_supplier2->{id} = $id_supplier2; -is_deeply( $bookseller2[0], $sample_supplier2, +is_deeply( cast_precision($bookseller2[0]), $sample_supplier2, "Koha::Acquisition::Booksellers->search returns the right informations about supplier $sample_supplier2->{name}" ); $supplier1 = Koha::Acquisition::Bookseller->new($sample_supplier1)->store; @@ -125,6 +125,7 @@ $id_supplier1 = $supplier1->id; my @booksellers = Koha::Acquisition::Booksellers->search(); for my $bookseller ( @booksellers ) { $bookseller = field_filter( $bookseller->unblessed ); + $bookseller = cast_precision($bookseller); } $sample_supplier1->{id} = $id_supplier1; @@ -149,7 +150,7 @@ is( $bookseller1fromid, undef, "find returns undef if no id given" ); $bookseller1fromid = Koha::Acquisition::Booksellers->find( $id_supplier1 ); $bookseller1fromid = field_filter($bookseller1fromid->unblessed); -is_deeply( $bookseller1fromid, $sample_supplier1, +is_deeply( cast_precision($bookseller1fromid), $sample_supplier1, "Get Supplier1 (find a bookseller by id)" ); $bookseller1fromid = Koha::Acquisition::Booksellers->find( $id_supplier1 ); @@ -228,8 +229,8 @@ $sample_supplier2 = { gstreg => 1, listincgst => 1, invoiceincgst => 1, - tax_rate => '2.0000 ', - discount => '2.0000', + tax_rate => '2.0000', + discount => 2.0000, notes => 'notes2 modified', deliverytime => 2, }; @@ -258,8 +259,8 @@ my $sample_supplier3 = { gstreg => 1, listincgst => 1, invoiceincgst => 1, - tax_rate => '3.0000', - discount => '3.0000', + tax_rate => '3.0000', + discount => 3.0000, notes => 'notes3', deliverytime => 3 }; @@ -278,8 +279,8 @@ my $sample_supplier4 = { gstreg => 1, listincgst => 1, invoiceincgst => 1, - tax_rate => '3.0000', - discount => '3.0000', + tax_rate => '3.0000', + discount => 3.0000, notes => 'notes3', }; my $supplier3 = Koha::Acquisition::Bookseller->new($sample_supplier3)->store; @@ -357,7 +358,7 @@ my $order1 = Koha::Acquisition::Order->new( entrydate => '01-01-2013', currency => $curcode, notes => "This is a note1", - tax_rate => 0.0500, + tax_rate => 0.0500, orderstatus => 1, subscriptionid => $id_subscription1, quantityreceived => 2, @@ -377,7 +378,7 @@ my $order2 = Koha::Acquisition::Order->new( entrydate => '01-01-2013', currency => $curcode, notes => "This is a note2", - tax_rate => 0.0500, + tax_rate => 0.0500, orderstatus => 1, subscriptionid => $id_subscription2, rrp => 10, @@ -395,7 +396,7 @@ my $order3 = Koha::Acquisition::Order->new( entrydate => '02-02-2013', currency => $curcode, notes => "This is a note3", - tax_rate => 0.0500, + tax_rate => 0.0500, orderstatus => 2, subscriptionid => $id_subscription3, rrp => 11, @@ -413,7 +414,7 @@ my $order4 = Koha::Acquisition::Order->new( entrydate => '02-02-2013', currency => $curcode, notes => "This is a note3", - tax_rate => 0.0500, + tax_rate => 0.0500, orderstatus => 2, subscriptionid => $id_subscription3, rrp => 11, @@ -779,3 +780,14 @@ sub field_filter { } return $struct; } + +# ensure numbers are actually tested as numbers to prevent +# precision changes causing test failures (D8->D9 Upgrades) +sub cast_precision { + my ($struct) = @_; + my @cast = ('discount'); + for my $cast (@cast) { + $struct->{$cast} = $struct->{$cast}+0; + } + return $struct; +} -- 2.39.5