Bug 18759: Try to fix random failure from Circulation.t
authorJonathan Druart <jonathan.druart@bugs.koha-community.org>
Thu, 8 Jun 2017 14:54:18 +0000 (11:54 -0300)
committerJonathan Druart <jonathan.druart@bugs.koha-community.org>
Thu, 8 Jun 2017 15:13:56 +0000 (12:13 -0300)
Circulation.t is failing randomly on our CI
https://jenkins.koha-community.org/job/Koha_Master_D8/192/console

    #   Failed test at t/db_dependent/Circulation.t line 1147.
    #          got: '1'
    #     expected: '0'

    #   Failed test at t/db_dependent/Circulation.t line 1152.
    #          got: '1'
    #     expected: '0'

    #   Failed test at t/db_dependent/Circulation.t line 1156.
    #          got: '1'
    #     expected: '0'

    #   Failed test at t/db_dependent/Circulation.t line 1170.
    #          got: '1'
    #     expected: '0'

    #   Failed test at t/db_dependent/Circulation.t line 1184.
    #          got: '1'
    #     expected: '0'
    # Looks like you failed 5 tests of 23.

Sometimes one of the alert or impossible flags is set.
This patch guesses that it's because of the 'restricted' value of the item that is evaluated to 1.
If it is not fixed by this patch, we will have more info next time (at least know
if alert or impossible is set).

Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
The fix is trivial. Using random data will lead to this situations. The good thing is that
it lets us spot places in which tests need more fine-grained data.

t/db_dependent/Circulation.t

index 9a5b821..995ffbc 100755 (executable)
@@ -1110,7 +1110,7 @@ C4::Context->dbh->do("DELETE FROM accountlines");
 }
 
 subtest 'CanBookBeIssued & AllowReturnToBranch' => sub {
-    plan tests => 23;
+    plan tests => 26;
 
     my $homebranch    = $builder->build( { source => 'Branch' } );
     my $holdingbranch = $builder->build( { source => 'Branch' } );
@@ -1127,6 +1127,7 @@ subtest 'CanBookBeIssued & AllowReturnToBranch' => sub {
                 notforloan    => 0,
                 itemlost      => 0,
                 withdrawn     => 0,
+                restricted    => 0,
                 biblionumber  => $biblioitem->{biblionumber}
             }
         }
@@ -1144,16 +1145,19 @@ subtest 'CanBookBeIssued & AllowReturnToBranch' => sub {
     ## Can be issued from homebranch
     set_userenv($homebranch);
     ( $error, $question, $alerts ) = CanBookBeIssued( $patron_2, $item->{barcode} );
-    is( keys(%$error) + keys(%$alerts),        0 );
+    is( keys(%$error), 0, 'There should not be any errors (impossible)' );
+    is( keys(%$alerts), 0, 'There should not be any alerts' );
     is( exists $question->{ISSUED_TO_ANOTHER}, 1 );
     ## Can be issued from holdingbranch
     set_userenv($holdingbranch);
     ( $error, $question, $alerts ) = CanBookBeIssued( $patron_2, $item->{barcode} );
-    is( keys(%$error) + keys(%$alerts),        0 );
+    is( keys(%$error), 0, 'There should not be any errors (impossible)' );
+    is( keys(%$alerts), 0, 'There should not be any alerts' );
     is( exists $question->{ISSUED_TO_ANOTHER}, 1 );
     ## Can be issued from another branch
     ( $error, $question, $alerts ) = CanBookBeIssued( $patron_2, $item->{barcode} );
-    is( keys(%$error) + keys(%$alerts),        0 );
+    is( keys(%$error), 0, 'There should not be any errors (impossible)' );
+    is( keys(%$alerts), 0, 'There should not be any alerts' );
     is( exists $question->{ISSUED_TO_ANOTHER}, 1 );
 
     # AllowReturnToBranch == holdingbranch