From c0adb88d0a55ac5625bd5973bb7053b14769bd41 Mon Sep 17 00:00:00 2001 From: Tomas Cohen Arazi Date: Mon, 16 Nov 2015 15:25:26 -0300 Subject: [PATCH] Bug 15152: t/db_dependent/Reports_Guided.t should not depend on existing data The current implementation relies on existing borrowers on the DB. Even when the DB itself doesn't have a FK constraint, the function that retrieves the reports from the DB relies on get_saved_reports_base_query which creates a query that JOINs the full query with the 'borrowers' table, on the borrowernumber. So it is doomed to fail on some scenarios. Specially because the current tests expect specific borrowernumber values to be present (1, 2 and 3). To test: [To set the failure scenario] $ vagrant up jessie $ vagrant ssh jessie $ wget https://theke.io/static/reports_guided_sequence.txt -O /vagrant/reports_guided_sequence.txt $ wget https://theke.io/static/koha_3_20_00.sql.gz -O /vagrant/koha_3_20_00.sql.gz $ sudo -s $ mysql > DROP DATABASE koha_kohadev; CREATE DATABASE koha_kohadev; \q $ zcat /vagrant/koha_3_20_00.sql.gz | mysql koha_kohadev $ exit $ sudo koha-shell kohadev $ cd kohaclone $ cat /vagrant/reports_guided_sequence.txt | xargs prove - now run the tests: $ prove t/db_dependent/Reports_Guided.t => FAIL: The tests fail - Apply the patch - [re create the scenario] - Run the test: $ prove t/db_dependent/Reports_Guided.t => SUCCESS: Tests now pass - Sign off :-D Signed-off-by: Tomas Cohen Arazi Signed-off-by: Kyle M Hall Signed-off-by: Tomas Cohen Arazi --- t/db_dependent/Reports_Guided.t | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/t/db_dependent/Reports_Guided.t b/t/db_dependent/Reports_Guided.t index 649e33ab63..e48a8a9cc0 100755 --- a/t/db_dependent/Reports_Guided.t +++ b/t/db_dependent/Reports_Guided.t @@ -19,6 +19,7 @@ use Modern::Perl; use Test::More tests => 18; use Test::Warn; +use t::lib::TestBuilder; use C4::Context; use Koha::Database; @@ -33,6 +34,7 @@ can_ok( my $schema = Koha::Database->new->schema; $schema->storage->txn_begin; +my $builder = t::lib::TestBuilder->new; my $dbh = C4::Context->dbh; $dbh->do(q|DELETE FROM saved_sql|); @@ -45,7 +47,8 @@ my $count = scalar( @{ get_saved_reports() } ); is( $count, 0, "There is no report" ); my @report_ids; -for my $id ( 1 .. 3 ) { +foreach ( 1..3 ) { + my $id = $builder->build({ source => 'Borrower' })->{ borrowernumber }; push @report_ids, save_report({ borrowernumber => $id, sql => "SQL$id", -- 2.39.2