From 8c7fda7858d1bb2cea09f0f162c32594d7cdb7a2 Mon Sep 17 00:00:00 2001 From: Tomas Cohen Arazi Date: Fri, 2 Dec 2016 14:19:22 -0300 Subject: [PATCH] [SIGNED-OFF] Bug 17714: Remove itemtype-related t/db_dependent/Members/* warnings This patch makes t/db_dependent/Members/* create good sample data for its tests. It does so by creating a random itemtype. To test: - Run $ prove t/db_dependent/Members/* => FAIL: lots of warnings about "item-level_itypes set but no itemtype set for item" - Apply the patch - Run: $ prove t/db_dependent/Members/* => SUCCESS: Tests are green, and no warnings. - Sign off :-D Signed-off-by: Mark Tompsett --- t/db_dependent/Members/GetAllIssues.t | 45 +++++++++++++++++++++--------- t/db_dependent/Members/GetOverdues.t | 41 +++++++++++++++++++-------- t/db_dependent/Members/GetPendingIssues.t | 46 ++++++++++++++++++++++--------- 3 files changed, 94 insertions(+), 38 deletions(-) diff --git a/t/db_dependent/Members/GetAllIssues.t b/t/db_dependent/Members/GetAllIssues.t index eb20ce7..56864a8 100644 --- a/t/db_dependent/Members/GetAllIssues.t +++ b/t/db_dependent/Members/GetAllIssues.t @@ -1,10 +1,27 @@ #!/usr/bin/perl +# This file is part of Koha. +# +# Koha is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# Koha is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Koha; if not, see . + use Modern::Perl; use Test::More tests => 16; use Test::MockModule; +use t::lib::TestBuilder; + use C4::Biblio; use C4::Items; use C4::Members; @@ -12,9 +29,11 @@ use C4::Circulation; use Koha::Libraries; use MARC::Record; +my $schema = Koha::Database->schema; my $dbh = C4::Context->dbh; -$dbh->{AutoCommit} = 0; -$dbh->{RaiseError} = 1; +$schema->storage->txn_begin; + +my $builder = t::lib::TestBuilder->new; $dbh->do(q|DELETE FROM issues|); $dbh->do(q|DELETE FROM borrowers|); @@ -23,27 +42,25 @@ $dbh->do(q|DELETE FROM branches|); $dbh->do(q|DELETE FROM biblio|); $dbh->do(q|DELETE FROM categories|); -my $branchcode = 'B'; -Koha::Library->new( { branchcode => $branchcode, branchname => 'Branch' } )->store; +my $branchcode = $builder->build( { source => 'Branch' } )->{branchcode}; +my $categorycode = $builder->build( { source => 'Category' } )->{categorycode}; +my $itemtype = $builder->build( { source => 'Itemtype' } )->{itemtype}; -my $categorycode = 'C'; -$dbh->do( "INSERT INTO categories(categorycode) VALUES(?)", - undef, $categorycode ); - -my %item_branch_infos = ( +my %item_infos = ( homebranch => $branchcode, holdingbranch => $branchcode, + itype => $itemtype ); my ($biblionumber1) = AddBiblio( MARC::Record->new, '' ); my $itemnumber1 = - AddItem( { barcode => '0101', %item_branch_infos }, $biblionumber1 ); + AddItem( { barcode => '0101', %item_infos }, $biblionumber1 ); my $itemnumber2 = - AddItem( { barcode => '0102', %item_branch_infos }, $biblionumber1 ); + AddItem( { barcode => '0102', %item_infos }, $biblionumber1 ); my ($biblionumber2) = AddBiblio( MARC::Record->new, '' ); my $itemnumber3 = - AddItem( { barcode => '0203', %item_branch_infos }, $biblionumber2 ); + AddItem( { barcode => '0203', %item_infos }, $biblionumber2 ); my $borrowernumber1 = AddMember( categorycode => $categorycode, branchcode => $branchcode ); @@ -92,4 +109,6 @@ $issues = C4::Members::GetAllIssues($borrowernumber2); is( @$issues, 1, 'GetAllIssues returns the correct number of elements' ); is( $issues->[0]->{itemnumber}, $itemnumber3, '' ); -$dbh->rollback(); +$schema->storage->txn_begin; + +1; diff --git a/t/db_dependent/Members/GetOverdues.t b/t/db_dependent/Members/GetOverdues.t index 93662b2..0f29b80 100644 --- a/t/db_dependent/Members/GetOverdues.t +++ b/t/db_dependent/Members/GetOverdues.t @@ -1,10 +1,27 @@ #!/usr/bin/perl +# This file is part of Koha. +# +# Koha is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# Koha is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Koha; if not, see . + use Modern::Perl; use Test::More tests => 3; use Test::MockModule; +use t::lib::TestBuilder; + use C4::Biblio; use C4::Items; use C4::Members; @@ -12,9 +29,11 @@ use C4::Circulation; use Koha::Libraries; use MARC::Record; +my $schema = Koha::Database->schema; my $dbh = C4::Context->dbh; -$dbh->{AutoCommit} = 0; -$dbh->{RaiseError} = 1; +$schema->storage->txn_begin; + +my $builder = t::lib::TestBuilder->new; $dbh->do(q|DELETE FROM issues|); $dbh->do(q|DELETE FROM borrowers|); @@ -23,27 +42,25 @@ $dbh->do(q|DELETE FROM branches|); $dbh->do(q|DELETE FROM biblio|); $dbh->do(q|DELETE FROM categories|); -my $branchcode = 'B'; -Koha::Library->new( { branchcode => $branchcode, branchname => 'Branch' } )->store; - -my $categorycode = 'C'; -$dbh->do( "INSERT INTO categories(categorycode) VALUES(?)", - undef, $categorycode ); +my $branchcode = $builder->build( { source => 'Branch' } )->{branchcode}; +my $categorycode = $builder->build( { source => 'Category' } )->{categorycode}; +my $itemtype = $builder->build( { source => 'Itemtype' } )->{itemtype}; -my %item_branch_infos = ( +my %item_infos = ( homebranch => $branchcode, holdingbranch => $branchcode, + itype => $itemtype ); my ($biblionumber1) = AddBiblio( MARC::Record->new, '' ); my $itemnumber1 = - AddItem( { barcode => '0101', %item_branch_infos }, $biblionumber1 ); + AddItem( { barcode => '0101', %item_infos }, $biblionumber1 ); my $itemnumber2 = - AddItem( { barcode => '0102', %item_branch_infos }, $biblionumber1 ); + AddItem( { barcode => '0102', %item_infos }, $biblionumber1 ); my ($biblionumber2) = AddBiblio( MARC::Record->new, '' ); my $itemnumber3 = - AddItem( { barcode => '0103', %item_branch_infos }, $biblionumber2 ); + AddItem( { barcode => '0103', %item_infos }, $biblionumber2 ); my $borrowernumber = AddMember( categorycode => $categorycode, branchcode => $branchcode ); diff --git a/t/db_dependent/Members/GetPendingIssues.t b/t/db_dependent/Members/GetPendingIssues.t index 2bfbc45..4906118 100644 --- a/t/db_dependent/Members/GetPendingIssues.t +++ b/t/db_dependent/Members/GetPendingIssues.t @@ -1,10 +1,27 @@ #!/usr/bin/perl +# This file is part of Koha. +# +# Koha is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# Koha is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Koha; if not, see . + use Modern::Perl; use Test::More tests => 20; use Test::MockModule; +use t::lib::TestBuilder; + use C4::Biblio; use C4::Items; use C4::Members; @@ -12,9 +29,11 @@ use C4::Circulation; use Koha::Library; use MARC::Record; +my $schema = Koha::Database->schema; my $dbh = C4::Context->dbh; -$dbh->{AutoCommit} = 0; -$dbh->{RaiseError} = 1; +$schema->storage->txn_begin; + +my $builder = t::lib::TestBuilder->new; $dbh->do(q|DELETE FROM issues|); $dbh->do(q|DELETE FROM borrowers|); @@ -23,27 +42,26 @@ $dbh->do(q|DELETE FROM branches|); $dbh->do(q|DELETE FROM biblio|); $dbh->do(q|DELETE FROM categories|); -my $branchcode = 'B'; -Koha::Library->new( { branchcode => $branchcode, branchname => 'Branch' } )->store; +my $branchcode = $builder->build( { source => 'Branch' } )->{branchcode}; +my $categorycode = $builder->build( { source => 'Category' } )->{categorycode}; +my $itemtype = $builder->build( { source => 'Itemtype' } )->{itemtype}; -my $categorycode = 'C'; -$dbh->do( "INSERT INTO categories(categorycode) VALUES(?)", - undef, $categorycode ); - -my %item_branch_infos = ( +my %item_infos = ( homebranch => $branchcode, holdingbranch => $branchcode, + itype => $itemtype ); + my ($biblionumber1) = AddBiblio( MARC::Record->new, '' ); my $itemnumber1 = - AddItem( { barcode => '0101', %item_branch_infos }, $biblionumber1 ); + AddItem( { barcode => '0101', %item_infos }, $biblionumber1 ); my $itemnumber2 = - AddItem( { barcode => '0102', %item_branch_infos }, $biblionumber1 ); + AddItem( { barcode => '0102', %item_infos }, $biblionumber1 ); my ($biblionumber2) = AddBiblio( MARC::Record->new, '' ); my $itemnumber3 = - AddItem( { barcode => '0203', %item_branch_infos }, $biblionumber2 ); + AddItem( { barcode => '0203', %item_infos }, $biblionumber2 ); my $borrowernumber1 = AddMember( categorycode => $categorycode, branchcode => $branchcode ); @@ -107,4 +125,6 @@ $issues = C4::Members::GetPendingIssues(); is( @$issues, 0, 'GetPendingIssues without borrower numbers returns an empty array' ); -$dbh->rollback(); +$schema->storage->txn_begin; + +1; -- 2.1.4