From 489ec42b6bd11a02f2f97ac9052c617a358b0894 Mon Sep 17 00:00:00 2001 From: Tomas Cohen Arazi Date: Mon, 12 Nov 2018 15:03:34 -0300 Subject: [PATCH] Bug 21749: (QA follow-up) Add more tests for ImportFramework Content-Type: text/plain; charset=utf-8 This patch adds tests for: - Output of ImportFramework on fields removal and error conditions (file not found) - Different file format behaviour (csv, xml and ods are tested). To test: - Run $ kshell k$ prove t/db_dependent/ImportExportFramework.t => SUCCESS: All green :-D - Sign off :-D Note: the biblio_framework* files are based on the original one on the patchset, and exported in 17.11 with different formats. Signed-off-by: Tomas Cohen Arazi Signed-off-by: Marcel de Rooy --- t/db_dependent/ImportExportFramework.t | 100 +++++++++++++++++---- .../data/frameworks/biblio_framework.ods | Bin 0 -> 5227 bytes .../data/frameworks/biblio_framework.xml | 28 ++++++ .../data/frameworks/biblio_framework_smaller.csv | 18 ++++ .../data/frameworks/biblio_framework_smaller.ods | Bin 0 -> 5027 bytes .../data/frameworks/biblio_framework_smaller.xml | 28 ++++++ 6 files changed, 157 insertions(+), 17 deletions(-) create mode 100644 t/db_dependent/data/frameworks/biblio_framework.ods create mode 100644 t/db_dependent/data/frameworks/biblio_framework.xml create mode 100644 t/db_dependent/data/frameworks/biblio_framework_smaller.csv create mode 100644 t/db_dependent/data/frameworks/biblio_framework_smaller.ods create mode 100644 t/db_dependent/data/frameworks/biblio_framework_smaller.xml diff --git a/t/db_dependent/ImportExportFramework.t b/t/db_dependent/ImportExportFramework.t index de096cc..8189183 100644 --- a/t/db_dependent/ImportExportFramework.t +++ b/t/db_dependent/ImportExportFramework.t @@ -1,34 +1,100 @@ #!/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::More tests => 1; + +use t::lib::TestBuilder; + use File::Basename qw( dirname ); use Koha::Database; use Koha::BiblioFrameworks; use Koha::MarcSubfieldStructures; -use t::lib::TestBuilder; use C4::ImportExportFramework; -my $schema = Koha::Database->new->schema; -$schema->storage->txn_begin; +my $schema = Koha::Database->new->schema; my $builder = t::lib::TestBuilder->new; -my $data_filepath = dirname(__FILE__) . '/data/biblio_framework.csv'; +subtest 'ImportFramework() tests' => sub { + + plan tests => 3; + + subtest 'CSV tests' => sub { + plan tests => 9; + + run_tests('csv'); + }; + + subtest 'ODS tests' => sub { + plan tests => 9; + + run_tests('ods'); + }; + + subtest 'XML tests' => sub { + plan tests => 9; + + run_tests('xml'); + }; +}; + +sub run_tests { + + my ($format) = @_; + + $schema->storage->txn_begin; + + my $data_filepath = dirname(__FILE__) . "/data/frameworks/biblio_framework.$format"; + my $fw_1 = $builder->build_object({ class => 'Koha::BiblioFrameworks' }); + + my $result = C4::ImportExportFramework::ImportFramework( $data_filepath, $fw_1->id ); + is( $result, 0, 'Import successful, no tags removed' ); + + my $nb_tags = $schema->resultset('MarcTagStructure')->search({ frameworkcode => $fw_1->id })->count; + is( $nb_tags, 4, "4 tags should have been imported" ); + + my $nb_subfields = Koha::MarcSubfieldStructures->search({ frameworkcode => $fw_1->id })->count; + is( $nb_subfields, 12, "12 subfields should have been imported" ); + + # bad file tests + my $fw_2 = $builder->build_object({ class => 'Koha::BiblioFrameworks' }); + $result = C4::ImportExportFramework::ImportFramework( '', $fw_2->id ); + + is( $result, -1, 'Bad file makes it return -1' ); + + $nb_tags = $schema->resultset('MarcTagStructure')->search({ frameworkcode => $fw_2->id })->count; + is( $nb_tags, 0, "0 tags should have been imported" ); + + $nb_subfields = Koha::MarcSubfieldStructures->search({ frameworkcode => $fw_2->id })->count; + is( $nb_subfields, 0, "0 subfields should have been imported" ); -my $frameworkcode = '4T'; -C4::ImportExportFramework::ImportFramework($data_filepath, $frameworkcode); + # framework overwrite + $data_filepath = dirname(__FILE__) . "/data/frameworks/biblio_framework_smaller.$format"; -my $dbh = C4::Context->dbh; + $result = C4::ImportExportFramework::ImportFramework( $data_filepath, $fw_1->id ); + is( $result, 5, 'Smaller fw import successful, 4 tags removed' ); -# FIXME Import does not create the biblio framework -#my $biblio_framework = Koha::BiblioFrameworks->find($frameworkcode); -#ok( $biblio_framework ); + $nb_tags = $schema->resultset('MarcTagStructure')->search({ frameworkcode => $fw_1->id })->count; + is( $nb_tags, 3, "3 tags should have been imported" ); -my $nb_tags = $dbh->selectrow_array(q|SELECT COUNT(*) FROM marc_tag_structure WHERE frameworkcode="4T"|); -is( $nb_tags, 4, "4 tags should have been imported" ); + $nb_subfields = Koha::MarcSubfieldStructures->search({ frameworkcode => $fw_1->id })->count; + is( $nb_subfields, 8, "8 subfields should have been imported" ); -my $nb_subfields = - Koha::MarcSubfieldStructures->search( { frameworkcode => $frameworkcode } ) - ->count; -is( $nb_subfields, 12, "12 subfields should have been imported" ); + $schema->storage->txn_rollback; +} diff --git a/t/db_dependent/data/frameworks/biblio_framework.ods b/t/db_dependent/data/frameworks/biblio_framework.ods new file mode 100644 index 0000000000000000000000000000000000000000..de157bef6560e99bc337fd6effc2542aa4c46b56 GIT binary patch literal 5227 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 literal 0 HcmV?d00001 diff --git a/t/db_dependent/data/frameworks/biblio_framework.xml b/t/db_dependent/data/frameworks/biblio_framework.xml new file mode 100644 index 0000000..b658aca --- /dev/null +++ b/t/db_dependent/data/frameworks/biblio_framework.xml @@ -0,0 +1,28 @@ + + + + + + + + + + + + +tagfieldliblibrarianlibopacrepeatablemandatoryauthorised_valueframeworkcode000LEADERLEADER01#T4001CONTROL NUMBERCONTROL NUMBER00#T4003CONTROL NUMBER IDENTIFIERCONTROL NUMBER IDENTIFIER01#T4010LIBRARY OF CONGRESS CONTROL NUMBERLIBRARY OF CONGRESS CONTROL NUMBER00#T4tagfieldtagsubfieldliblibrarianlibopacrepeatablemandatorykohafieldtabauthorised_valueauthtypecodevalue_builderisurlhiddenframeworkcodeseealsolinkdefaultvaluemaxlength000@fixed length control fieldfixed length control field01#0##marc21_leader.pl00T4###24001@control fieldcontrol field00#0###00T4###9999003@control fieldcontrol field01#0##marc21_orgcode.pl00T4###9999005@control fieldcontrol field01#0##marc21_field_005.pl00T4###9999006@fixed length control fieldfixed length control field00#0##marc21_field_006.pl0-1T4###9999007@fixed length control fieldfixed length control field00#0##marc21_field_007.pl00T4###9999008@fixed length control fieldfixed length control field01#0##marc21_field_008.pl00T4###40009@fixed length control fieldfixed length control field00#0###0-6T4###99990108Field link and sequence numberField link and sequence number10#0###0-6T4###9999010aLC control numberLC control number00biblioitems.lccn0###00T4###9999010bNUCMC control numberNUCMC control number10#0###0-1T4###9999010zCanceled/invalid LC control numberCanceled/invalid LC control number10#0###0-1T4###9999 diff --git a/t/db_dependent/data/frameworks/biblio_framework_smaller.csv b/t/db_dependent/data/frameworks/biblio_framework_smaller.csv new file mode 100644 index 0000000..876410a --- /dev/null +++ b/t/db_dependent/data/frameworks/biblio_framework_smaller.csv @@ -0,0 +1,18 @@ +"tagfield","liblibrarian","libopac","repeatable","mandatory","authorised_value","frameworkcode" +"000","LEADER","LEADER","0","1","","T5" +"001","CONTROL NUMBER","CONTROL NUMBER","0","0","","T5" +"003","CONTROL NUMBER IDENTIFIER","CONTROL NUMBER IDENTIFIER","0","1","","T5" + +"#-#","#-#","#-#","#-#","#-#","#-#","#-#" + +"tagfield","tagsubfield","liblibrarian","libopac","repeatable","mandatory","kohafield","tab","authorised_value","authtypecode","value_builder","isurl","hidden","frameworkcode","seealso","link","defaultvalue","maxlength" +"000","@","fixed length control field","fixed length control field","0","1","","0","","","marc21_leader.pl","0","0","T5","","","","24" +"001","@","control field","control field","0","0","","0","","","","0","0","T5","","","","9999" +"003","@","control field","control field","0","1","","0","","","marc21_orgcode.pl","0","0","T5","","","","9999" +"005","@","control field","control field","0","1","","0","","","marc21_field_005.pl","0","0","T5","","","","9999" +"007","@","fixed length control field","fixed length control field","0","0","","0","","","marc21_field_007.pl","0","0","T5","","","","9999" +"008","@","fixed length control field","fixed length control field","0","1","","0","","","marc21_field_008.pl","0","0","T5","","","","40" +"010","8","Field link and sequence number","Field link and sequence number","1","0","","0","","","","0","-6","T5","","","","9999" +"010","b","NUCMC control number","NUCMC control number","1","0","","0","","","","0","-1","T5","","","","9999" + +"#-#","#-#","#-#","#-#","#-#","#-#","#-#","#-#","#-#","#-#","#-#","#-#","#-#","#-#","#-#","#-#","#-#","#-#" diff --git a/t/db_dependent/data/frameworks/biblio_framework_smaller.ods b/t/db_dependent/data/frameworks/biblio_framework_smaller.ods new file mode 100644 index 0000000000000000000000000000000000000000..99c5642bf62a9e8c5679ebb6109ec306a26dc0d8 GIT binary patch literal 5027 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 literal 0 HcmV?d00001 diff --git a/t/db_dependent/data/frameworks/biblio_framework_smaller.xml b/t/db_dependent/data/frameworks/biblio_framework_smaller.xml new file mode 100644 index 0000000..cff72b8 --- /dev/null +++ b/t/db_dependent/data/frameworks/biblio_framework_smaller.xml @@ -0,0 +1,28 @@ + + + + + + + + + + + + +tagfieldliblibrarianlibopacrepeatablemandatoryauthorised_valueframeworkcode000LEADERLEADER01#T5001CONTROL NUMBERCONTROL NUMBER00#T5003CONTROL NUMBER IDENTIFIERCONTROL NUMBER IDENTIFIER01#T5tagfieldtagsubfieldliblibrarianlibopacrepeatablemandatorykohafieldtabauthorised_valueauthtypecodevalue_builderisurlhiddenframeworkcodeseealsolinkdefaultvaluemaxlength000@fixed length control fieldfixed length control field01#0##marc21_leader.pl00T5###24001@control fieldcontrol field00#0###00T5###9999003@control fieldcontrol field01#0##marc21_orgcode.pl00T5###9999005@control fieldcontrol field01#0##marc21_field_005.pl00T5###9999007@fixed length control fieldfixed length control field00#0##marc21_field_007.pl00T5###9999008@fixed length control fieldfixed length control field01#0##marc21_field_008.pl00T5###400108Field link and sequence numberField link and sequence number10#0###0-6T5###9999010bNUCMC control numberNUCMC control number10#0###0-1T5###9999 -- 2.1.4