Bugzilla – Attachment 62398 Details for
Bug 18448
Fix a few db_dependent tests
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Bug 18448: Fix a few db_dependent tests
Bug-18448-Fix-a-few-dbdependent-tests.patch (text/plain), 15.18 KB, created by
Marc Véron
on 2017-04-19 15:56:41 UTC
(
hide
)
Description:
Bug 18448: Fix a few db_dependent tests
Filename:
MIME Type:
Creator:
Marc Véron
Created:
2017-04-19 15:56:41 UTC
Size:
15.18 KB
patch
obsolete
>From e9c5b21858ce34712032355b311f03d8ce21365a Mon Sep 17 00:00:00 2001 >From: Marcel de Rooy <m.de.rooy@rijksmuseum.nl> >Date: Sun, 16 Apr 2017 18:50:58 +0200 >Subject: [PATCH] Bug 18448: Fix a few db_dependent tests >MIME-Version: 1.0 >Content-Type: text/plain; charset=UTF-8 >Content-Transfer-Encoding: 8bit > >Tests in db_dependent may expect a Koha database, but should not rely on >hardcoded categories, currencies, branch codes, etc. > >This patch fixes a bunch of those. But this is a continuous project. We also >need QA to closely watch new edits. > >Accounts.t: hardcoded category PT replaced >Acquisition/OrderFromSubscription.t: hardcoded USD >Acquisition/StandingOrders.t: same >ArticleRequests.t: create itemtype, branch and category for testing >AuthorisedValues.t: remove $dbh, add two test branches >AuthoritiesMarc.t: add hardcoded GEOGR_NAME authtype >Bookseller.t: add test currency >Koha.t: add test itemtype instead of hardcoded BK >UsageStats.t: add test branch and category > >Test plan: >Run the adjusted tests. > >Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl> > >All tests successful (see comment #9) >Signed-off-by: Marc Véron <veron@veron.ch> >--- > t/db_dependent/Accounts.t | 4 ++-- > t/db_dependent/Acquisition/OrderFromSubscription.t | 7 ++++++- > t/db_dependent/Acquisition/StandingOrders.t | 3 ++- > t/db_dependent/ArticleRequests.t | 16 +++++++++------ > t/db_dependent/AuthorisedValues.t | 22 +++++++++++--------- > t/db_dependent/AuthoritiesMarc.t | 8 ++++++++ > t/db_dependent/Bookseller.t | 15 +++++++++----- > t/db_dependent/Koha.t | 24 ++++++++++++++-------- > t/db_dependent/UsageStats.t | 12 ++++++----- > 9 files changed, 72 insertions(+), 39 deletions(-) > >diff --git a/t/db_dependent/Accounts.t b/t/db_dependent/Accounts.t >index 505ce2f..fcc63d3 100644 >--- a/t/db_dependent/Accounts.t >+++ b/t/db_dependent/Accounts.t >@@ -103,8 +103,8 @@ my @test_data = ( > { amount => -5 , days_ago => $days , description =>'purge_zero_balance_fees should not delete fees with negative amout owed on threshold day' , delete => 0 } , > { amount => -5 , days_ago => $days + 1 , description =>'purge_zero_balance_fees should not delete fees with negative amout owed after threshold day' , delete => 0 } > ); >- >-my $borrower = Koha::Patron->new( { firstname => 'Test', surname => 'Patron', categorycode => 'PT', branchcode => $branchcode } )->store(); >+my $categorycode = $builder->build({ source => 'Category' })->{categorycode}; >+my $borrower = Koha::Patron->new( { firstname => 'Test', surname => 'Patron', categorycode => $categorycode, branchcode => $branchcode } )->store(); > > for my $data ( @test_data ) { > $sth->execute($borrower->borrowernumber, $data->{amount}, $data->{days_ago}, $data->{description}); >diff --git a/t/db_dependent/Acquisition/OrderFromSubscription.t b/t/db_dependent/Acquisition/OrderFromSubscription.t >index 4641894..4f318b2 100644 >--- a/t/db_dependent/Acquisition/OrderFromSubscription.t >+++ b/t/db_dependent/Acquisition/OrderFromSubscription.t >@@ -2,6 +2,8 @@ use Modern::Perl; > > use Test::More tests => 12; > >+use t::lib::TestBuilder; >+ > use_ok('C4::Acquisition'); > use_ok('C4::Biblio'); > use_ok('C4::Budgets'); >@@ -13,9 +15,12 @@ use Koha::Database; > # Start transaction > my $schema = Koha::Database->new()->schema(); > $schema->storage->txn_begin(); >+my $builder = t::lib::TestBuilder->new; > my $dbh = C4::Context->dbh; > $dbh->{RaiseError} = 1; > >+my $curcode = $builder->build({ source => 'Currency' })->{currencycode}; >+ > my $bookseller = Koha::Acquisition::Bookseller->new( > { > name => "my vendor", >@@ -61,7 +66,7 @@ my $order = Koha::Acquisition::Order->new({ > biblionumber => $subscription->{biblionumber}, > entrydate => '01-01-2013', > quantity => 1, >- currency => 'USD', >+ currency => $curcode, > listprice => $cost, > notes => "This is a note", > basketno => $basketno, >diff --git a/t/db_dependent/Acquisition/StandingOrders.t b/t/db_dependent/Acquisition/StandingOrders.t >index f0e7dc8..9750bae 100644 >--- a/t/db_dependent/Acquisition/StandingOrders.t >+++ b/t/db_dependent/Acquisition/StandingOrders.t >@@ -22,6 +22,7 @@ my $branch = $builder->build( { source => 'Branch' } ); > my $bookseller = $builder->build( { source => 'Aqbookseller' } ); > my $budget = $builder->build( { source => 'Aqbudget' } ); > my $staffmember = $builder->build( { source => 'Borrower' } ); >+my $curcode = $builder->build( { source => 'Currency' })->{currencycode}; > > # Create baskets and orders > >@@ -61,7 +62,7 @@ my $ordernumber = Koha::Acquisition::Order->new( > basketno => $basketno, > biblionumber => $biblionumber, > budget_id => $budget->{budget_id}, >- currency => 'USD', >+ currency => $curcode, > quantity => 0, > rrp => 42, > rrp_tax_included => 42, >diff --git a/t/db_dependent/ArticleRequests.t b/t/db_dependent/ArticleRequests.t >index af9e1c8..482cce2 100755 >--- a/t/db_dependent/ArticleRequests.t >+++ b/t/db_dependent/ArticleRequests.t >@@ -20,8 +20,10 @@ use Modern::Perl; > use POSIX qw(strftime); > > use Test::More tests => 49; >-use Koha::Database; > >+use t::lib::TestBuilder; >+ >+use Koha::Database; > use Koha::Biblio; > use Koha::Patron; > use Koha::Library; >@@ -34,6 +36,7 @@ BEGIN { > > my $schema = Koha::Database->new()->schema(); > $schema->storage->txn_begin(); >+my $builder = t::lib::TestBuilder->new; > > my $dbh = C4::Context->dbh; > $dbh->{RaiseError} = 1; >@@ -50,21 +53,22 @@ my $biblioitem = $schema->resultset('Biblioitem')->new( > )->insert(); > ok( $biblioitem->id, 'biblioitem created' ); > >+my $itype = $builder->build({ source => 'Itemtype' }); > my $item = Koha::Item->new( > { > biblionumber => $biblio->id, > biblioitemnumber => $biblioitem->id, >- itype => $schema->resultset('Itemtype')->search()->next()->itemtype(), >+ itype => $itype->{itype}, > } > )->store(); > ok( $item->id, 'Koha::Item created' ); > >-my $branch = Koha::Libraries->search()->next(); >-my $category = $schema->resultset('Category')->next(); >+my $branch = $builder->build({ source => 'Branch' }); >+my $category = $builder->build({ source => 'Category' }); > my $patron = Koha::Patron->new( > { >- categorycode => $category->id, >- branchcode => $branch->id, >+ categorycode => $category->{categorycode}, >+ branchcode => $branch->{branchcode}, > } > )->store(); > ok( $patron->id, 'Koha::Patron created' ); >diff --git a/t/db_dependent/AuthorisedValues.t b/t/db_dependent/AuthorisedValues.t >index 6d44a72..ad5ec60 100644 >--- a/t/db_dependent/AuthorisedValues.t >+++ b/t/db_dependent/AuthorisedValues.t >@@ -3,18 +3,21 @@ > use Modern::Perl; > use Test::More tests => 15; > >+use t::lib::TestBuilder; >+ >+use Koha::Database; > use C4::Context; > use Koha::AuthorisedValue; > use Koha::AuthorisedValues; > use Koha::AuthorisedValueCategories; > use Koha::MarcSubfieldStructures; > >-my $dbh = C4::Context->dbh; >-$dbh->{AutoCommit} = 0; >-$dbh->{RaiseError} = 1; >+my $schema = Koha::Database->new->schema; >+$schema->storage->txn_begin; >+my $builder = t::lib::TestBuilder->new; > >-$dbh->do("DELETE FROM authorised_values"); >-$dbh->do("DELETE FROM authorised_value_categories"); >+Koha::AuthorisedValues->delete; >+Koha::AuthorisedValueCategories->delete; > > # insert > Koha::AuthorisedValueCategory->new({ category_name => 'av_for_testing' })->store; >@@ -89,11 +92,8 @@ my @authorised_values = > Koha::AuthorisedValues->new()->search( { category => 'av_for_testing' } ); > is( @authorised_values, 3, "Get correct number of values" ); > >-my $branches_rs = Koha::Database->new()->schema()->resultset('Branch')->search(); >-my $branch1 = $branches_rs->next(); >-my $branchcode1 = $branch1->branchcode(); >-my $branch2 = $branches_rs->next(); >-my $branchcode2 = $branch2->branchcode(); >+my $branchcode1 = $builder->build({ source => 'Branch' })->{branchcode}; >+my $branchcode2 = $builder->build({ source => 'Branch' })->{branchcode}; > > $av1->add_branch_limitation( $branchcode1 ); > >@@ -225,3 +225,5 @@ subtest 'search_by_*_field + find_by_koha_field + get_description' => sub { > ); > }; > }; >+ >+$schema->storage->txn_rollback; >diff --git a/t/db_dependent/AuthoritiesMarc.t b/t/db_dependent/AuthoritiesMarc.t >index c9b44b4..a24d917 100755 >--- a/t/db_dependent/AuthoritiesMarc.t >+++ b/t/db_dependent/AuthoritiesMarc.t >@@ -11,7 +11,9 @@ use Test::Warn; > use MARC::Record; > > use t::lib::Mocks; >+use t::lib::TestBuilder; > use Koha::Database; >+use Koha::Authority::Types; > > BEGIN { > use_ok('C4::AuthoritiesMarc'); >@@ -61,9 +63,15 @@ $module->mock('GetAuthority', sub { > my $schema = Koha::Database->new->schema; > $schema->storage->txn_begin; > my $dbh = C4::Context->dbh; >+my $builder = t::lib::TestBuilder->new; > > t::lib::Mocks::mock_preference('marcflavour', 'MARC21'); > >+# Authority type GEOGR_NAME is hardcoded here >+if( ! Koha::Authority::Types->find('GEOGR_NAME') ) { >+ $builder->build({ source => 'AuthType', value => { authtypecode => 'GEOGR_NAME' }}); >+}; >+ > is(BuildAuthHierarchies(3, 1), '1,2,3', "Built linked authtrees hierarchy string"); > > my $expectedhierarchy = [ [ { >diff --git a/t/db_dependent/Bookseller.t b/t/db_dependent/Bookseller.t >index 77cf3ef..96e0837 100644 >--- a/t/db_dependent/Bookseller.t >+++ b/t/db_dependent/Bookseller.t >@@ -6,6 +6,8 @@ use Test::More tests => 86; > use Test::MockModule; > use Test::Warn; > >+use t::lib::TestBuilder; >+ > use C4::Context; > use Koha::DateUtils; > use DateTime::Duration; >@@ -35,8 +37,8 @@ my $dbh = C4::Context->dbh; > my $database = Koha::Database->new(); > my $schema = $database->schema(); > $schema->storage->txn_begin(); >- > $dbh->{RaiseError} = 1; >+my $builder = t::lib::TestBuilder->new; > > #Start tests > $dbh->do(q|DELETE FROM aqorders|); >@@ -44,6 +46,9 @@ $dbh->do(q|DELETE FROM aqbasket|); > $dbh->do(q|DELETE FROM aqbooksellers|); > $dbh->do(q|DELETE FROM subscription|); > >+# Add currency >+my $curcode = $builder->build({ source => 'Currency' })->{currencycode}; >+ > #Test AddBookseller > my $count = Koha::Acquisition::Booksellers->search()->count(); > my $sample_supplier1 = { >@@ -350,7 +355,7 @@ my $order1 = Koha::Acquisition::Order->new( > biblionumber => $biblionumber, > budget_id => $id_budget, > entrydate => '01-01-2013', >- currency => 'EUR', >+ currency => $curcode, > notes => "This is a note1", > tax_rate => 0.0500, > orderstatus => 1, >@@ -370,7 +375,7 @@ my $order2 = Koha::Acquisition::Order->new( > biblionumber => $biblionumber, > budget_id => $id_budget, > entrydate => '01-01-2013', >- currency => 'EUR', >+ currency => $curcode, > notes => "This is a note2", > tax_rate => 0.0500, > orderstatus => 1, >@@ -388,7 +393,7 @@ my $order3 = Koha::Acquisition::Order->new( > biblionumber => $biblionumber, > budget_id => $id_budget, > entrydate => '02-02-2013', >- currency => 'EUR', >+ currency => $curcode, > notes => "This is a note3", > tax_rate => 0.0500, > orderstatus => 2, >@@ -406,7 +411,7 @@ my $order4 = Koha::Acquisition::Order->new( > biblionumber => $biblionumber, > budget_id => $id_budget, > entrydate => '02-02-2013', >- currency => 'EUR', >+ currency => $curcode, > notes => "This is a note3", > tax_rate => 0.0500, > orderstatus => 2, >diff --git a/t/db_dependent/Koha.t b/t/db_dependent/Koha.t >index b3f51e0..258289d 100644 >--- a/t/db_dependent/Koha.t >+++ b/t/db_dependent/Koha.t >@@ -4,22 +4,28 @@ > # It requires a working Koha database with the sample data > > use Modern::Perl; >+use DateTime::Format::MySQL; >+use Test::More tests => 7; >+ >+use t::lib::TestBuilder; >+ > use C4::Context; >+use Koha::Database; > use Koha::DateUtils qw(dt_from_string); > use Koha::AuthorisedValue; > use Koha::AuthorisedValueCategories; > >-use Test::More tests => 7; >-use DateTime::Format::MySQL; >- > BEGIN { > use_ok('C4::Koha', qw( :DEFAULT GetDailyQuote GetItemTypesCategorized)); > use_ok('C4::Members'); > } > >+my $schema = Koha::Database->new->schema; >+$schema->storage->txn_begin; >+my $builder = t::lib::TestBuilder->new; > my $dbh = C4::Context->dbh; >-$dbh->{AutoCommit} = 0; >-$dbh->{RaiseError} = 1; >+ >+our $itype_1 = $builder->build({ source => 'Itemtype' }); > > subtest 'Authorized Values Tests' => sub { > plan tests => 3; >@@ -152,9 +158,9 @@ subtest 'Authorized Values Tests' => sub { > }; > > subtest 'Itemtype info Tests' => sub { >- like ( getitemtypeinfo('BK')->{'imageurl'}, qr/intranet-tmpl/, 'getitemtypeinfo on unspecified interface returns intranet imageurl (legacy behavior)' ); >- like ( getitemtypeinfo('BK', 'intranet')->{'imageurl'}, qr/intranet-tmpl/, 'getitemtypeinfo on "intranet" interface returns intranet imageurl' ); >- like ( getitemtypeinfo('BK', 'opac')->{'imageurl'}, qr/opac-tmpl/, 'getitemtypeinfo on "opac" interface returns opac imageurl' ); >+ like ( getitemtypeinfo( $itype_1->{itemtype} )->{'imageurl'}, qr/intranet-tmpl/, 'getitemtypeinfo on unspecified interface returns intranet imageurl (legacy behavior)' ); >+ like ( getitemtypeinfo( $itype_1->{itemtype}, 'intranet')->{'imageurl'}, qr/intranet-tmpl/, 'getitemtypeinfo on "intranet" interface returns intranet imageurl' ); >+ like ( getitemtypeinfo( $itype_1->{itemtype}, 'opac')->{'imageurl'}, qr/opac-tmpl/, 'getitemtypeinfo on "opac" interface returns opac imageurl' ); > }; > > ### test for C4::Koha->GetDailyQuote() >@@ -294,4 +300,4 @@ subtest 'GetItemTypesCategorized test' => sub{ > is_deeply(\@results,\@expected, 'GetItemTypesCategorized: grouped and ungrouped items returned as expected.'); > }; > >-$dbh->rollback(); >+$schema->storage->txn_rollback; >diff --git a/t/db_dependent/UsageStats.t b/t/db_dependent/UsageStats.t >index d11cbd4..5f4dfad 100644 >--- a/t/db_dependent/UsageStats.t >+++ b/t/db_dependent/UsageStats.t >@@ -17,6 +17,7 @@ > use Modern::Perl; > use Test::More tests => 57; > use t::lib::Mocks qw(mock_preference); >+use t::lib::TestBuilder; > use POSIX qw(strftime); > use Data::Dumper; > use Koha::Biblios; >@@ -41,9 +42,10 @@ can_ok( > _count ) > ); > >+my $schema = Koha::Database->new->schema; >+$schema->storage->txn_begin; >+my $builder = t::lib::TestBuilder->new; > my $dbh = C4::Context->dbh; >-$dbh->{AutoCommit} = 0; >-$dbh->{RaiseError} = 1; > > $dbh->do('DELETE FROM issues'); > $dbh->do('DELETE FROM biblio'); >@@ -213,8 +215,8 @@ sub construct_objects_needed { > my $cardnumber1 = 'test_card1'; > my $cardnumber2 = 'test_card2'; > my $cardnumber3 = 'test_card3'; >- my $categorycode = Koha::Database->new()->schema()->resultset('Category')->first()->categorycode(); >- my $branchcode = Koha::Database->new()->schema()->resultset('Branch')->first()->branchcode(); >+ my $categorycode = $builder->build({ source => 'Category' })->{categorycode}; >+ my $branchcode = $builder->build({ source => 'Branch' })->{branchcode}; > > my $query = ' > INSERT INTO borrowers >@@ -613,4 +615,4 @@ sub verif_systempreferences_values { > } > } > >-$dbh->rollback; >+$schema->storage->txn_rollback; >-- >2.1.4
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
|
Splinter Review
Attachments on
bug 18448
:
62367
|
62368
|
62392
|
62398
|
62418