From fbd0e53a51d8c5dc4de4484a9210c6353c9a8245 Mon Sep 17 00:00:00 2001 From: Olli-Antti Kivilahti Date: Tue, 7 Mar 2017 18:56:29 +0200 Subject: [PATCH] Bug 18226 - Remove "use Test::DBIx::Class" instantiations' dangerous code duplication Is 'instantiations' even a word? Use a Test::DBIx::Class defaults instead. Save your keyboard and prevent horrible bugs from emerging from rampant code duplication. This change doesn't seem to have any impact on the speed of executing those tests. --- t/Auth_with_shibboleth.t | 2 +- t/Biblio.t | 8 ++------ t/Calendar.t | 7 +------ t/Images.t | 7 +------ t/Koha.t | 7 +------ t/Letters.t | 7 +------ t/Matcher.t | 7 +------ t/Members_AttributeTypes.t | 7 +------ t/NorwegianPatronDB.t | 7 +------ t/Prices.t | 7 +------ t/SocialData.t | 7 +------ t/XSLT.t | 15 ++------------- t/db_dependent/Sitemapper.t | 7 +------ t/etc/schema.pl | 7 +++++++ 14 files changed, 22 insertions(+), 80 deletions(-) create mode 100644 t/etc/schema.pl diff --git a/t/Auth_with_shibboleth.t b/t/Auth_with_shibboleth.t index 5f24cd2..ccffe6a 100644 --- a/t/Auth_with_shibboleth.t +++ b/t/Auth_with_shibboleth.t @@ -34,7 +34,7 @@ BEGIN { } } -use Test::DBIx::Class { schema_class => 'Koha::Schema', connect_info => ['dbi:SQLite:dbname=:memory:','',''] }; +use Test::DBIx::Class; # Mock Variables my $matchpoint = 'userid'; diff --git a/t/Biblio.t b/t/Biblio.t index 1cec33b..1bf7895 100755 --- a/t/Biblio.t +++ b/t/Biblio.t @@ -33,12 +33,8 @@ BEGIN { use_ok('C4::Biblio'); -use Test::DBIx::Class { - schema_class => 'Koha::Schema', - connect_info => ['dbi:SQLite:dbname=:memory:','',''], - connect_opts => { name_sep => '.', quote_char => '`', }, - fixture_class => '::Populate', -}, 'Biblio' ; +#use Test::DBIx::Class {}, 'Biblio'; +use Test::DBIx::Class; #No difference between these two invocations in time taken to execute tests. sub fixtures { my ( $data ) = @_; diff --git a/t/Calendar.t b/t/Calendar.t index 3adfc6f..d9c246a 100755 --- a/t/Calendar.t +++ b/t/Calendar.t @@ -37,12 +37,7 @@ BEGIN { use_ok('Koha::Calendar'); -use Test::DBIx::Class { - schema_class => 'Koha::Schema', - connect_info => ['dbi:SQLite:dbname=:memory:','',''], - connect_opts => { name_sep => '.', quote_char => '`', }, - fixture_class => '::Populate', -}; +use Test::DBIx::Class; my $db = Test::MockModule->new('Koha::Database'); $db->mock( diff --git a/t/Images.t b/t/Images.t index 0ee5ce6..02bcd82 100644 --- a/t/Images.t +++ b/t/Images.t @@ -32,12 +32,7 @@ BEGIN { use_ok('C4::Images'); -use Test::DBIx::Class { - schema_class => 'Koha::Schema', - connect_info => ['dbi:SQLite:dbname=:memory:','',''], - connect_opts => { name_sep => '.', quote_char => '`', }, - fixture_class => '::Populate', -}, 'Biblioimage' ; +use Test::DBIx::Class; # Make the code in the module use our mocked Koha::Schema/Koha::Database my $db = Test::MockModule->new('Koha::Database'); diff --git a/t/Koha.t b/t/Koha.t index e617146..2e11ab7 100755 --- a/t/Koha.t +++ b/t/Koha.t @@ -33,12 +33,7 @@ BEGIN { use_ok('C4::Koha'); -use Test::DBIx::Class { - schema_class => 'Koha::Schema', - connect_info => ['dbi:SQLite:dbname=:memory:','',''], - connect_opts => { name_sep => '.', quote_char => '`', }, - fixture_class => '::Populate', -}, 'Branch' ; +use Test::DBIx::Class; sub fixtures { my ( $libraries ) = @_; diff --git a/t/Letters.t b/t/Letters.t index a072044..4c75efa 100755 --- a/t/Letters.t +++ b/t/Letters.t @@ -30,12 +30,7 @@ BEGIN { } } -use Test::DBIx::Class { - schema_class => 'Koha::Schema', - connect_info => ['dbi:SQLite:dbname=:memory:','',''], - connect_opts => { name_sep => '.', quote_char => '`', }, - fixture_class => '::Populate', -}, 'Letter' ; +use Test::DBIx::Class; use t::lib::Mocks; fixtures_ok [ diff --git a/t/Matcher.t b/t/Matcher.t index 3d7f6e9..30d1b90 100755 --- a/t/Matcher.t +++ b/t/Matcher.t @@ -35,12 +35,7 @@ BEGIN { use_ok('C4::Matcher'); -use Test::DBIx::Class { - schema_class => 'Koha::Schema', - connect_info => ['dbi:SQLite:dbname=:memory:','',''], - connect_opts => { name_sep => '.', quote_char => '`', }, - fixture_class => '::Populate', -}, 'MarcMatcher' ; +use Test::DBIx::Class; fixtures_ok [ MarcMatcher => [ diff --git a/t/Members_AttributeTypes.t b/t/Members_AttributeTypes.t index 4b4d5a1..5cd0335 100755 --- a/t/Members_AttributeTypes.t +++ b/t/Members_AttributeTypes.t @@ -32,12 +32,7 @@ BEGIN { use_ok('C4::Members::AttributeTypes'); -use Test::DBIx::Class { - schema_class => 'Koha::Schema', - connect_info => ['dbi:SQLite:dbname=:memory:','',''], - connect_opts => { name_sep => '.', quote_char => '`', }, - fixture_class => '::Populate', -}, 'BorrowerAttributeType', 'Category' ; +use Test::DBIx::Class; fixtures_ok [ Category => [ diff --git a/t/NorwegianPatronDB.t b/t/NorwegianPatronDB.t index 1f0808c..ec63020 100644 --- a/t/NorwegianPatronDB.t +++ b/t/NorwegianPatronDB.t @@ -60,12 +60,7 @@ BEGIN { } } -use Test::DBIx::Class { - schema_class => 'Koha::Schema', - connect_info => ['dbi:SQLite:dbname=:memory:','',''], - connect_opts => { name_sep => '.', quote_char => '`', }, - fixture_class => '::Populate', -}, 'Borrower', 'BorrowerSync'; +use Test::DBIx::Class {}, 'Borrower', 'BorrowerSync'; #Also loads those modules. # Make the code in the module use our mocked Koha::Schema/Koha::Database my $db = Test::MockModule->new('Koha::Database'); diff --git a/t/Prices.t b/t/Prices.t index f89c7f6..c65f203 100644 --- a/t/Prices.t +++ b/t/Prices.t @@ -20,12 +20,7 @@ use_ok('Koha::Number::Price'); t::lib::Mocks::mock_preference( 'gist', '0.02|0.05|0.196' ); -use Test::DBIx::Class { - schema_class => 'Koha::Schema', - connect_info => ['dbi:SQLite:dbname=:memory:','',''], - connect_opts => { name_sep => '.', quote_char => '`', }, - fixture_class => '::Populate', -}, 'Currency' ; +use Test::DBIx::Class; my $db = Test::MockModule->new('Koha::Database'); $db->mock( _new_schema => sub { return Schema(); } ); diff --git a/t/SocialData.t b/t/SocialData.t index 8b6a93b..eec1e5c 100644 --- a/t/SocialData.t +++ b/t/SocialData.t @@ -34,12 +34,7 @@ BEGIN { use_ok('C4::SocialData'); } -use Test::DBIx::Class { - schema_class => 'Koha::Schema', - connect_info => ['dbi:SQLite:dbname=:memory:','',''], - connect_opts => { name_sep => '.', quote_char => '`', }, - fixture_class => '::Populate', -}, 'SocialData', 'Biblioitem' ; +use Test::DBIx::Class; fixtures_ok [ Biblioitem => [ diff --git a/t/XSLT.t b/t/XSLT.t index 7136375..aefa4df 100755 --- a/t/XSLT.t +++ b/t/XSLT.t @@ -27,7 +27,7 @@ use Module::Load::Conditional qw/check_install/; BEGIN { if ( check_install( module => 'Test::DBIx::Class' ) ) { - plan tests => 10; + plan tests => 9; } else { plan skip_all => "Need Test::DBIx::Class" } @@ -35,18 +35,7 @@ BEGIN { use_ok('C4::XSLT'); }; -use Test::DBIx::Class { - schema_class => 'Koha::Schema', - connect_info => ['dbi:SQLite:dbname=:memory:','',''], - connect_opts => { name_sep => '.', quote_char => '`', }, - fixture_class => '::Populate', -}, 'Branch' ; - -fixtures_ok [ - Branch => [ - ], -]; - +use Test::DBIx::Class; my $dir = File::Temp->newdir(); my @themes = ('prog', 'test'); diff --git a/t/db_dependent/Sitemapper.t b/t/db_dependent/Sitemapper.t index 848fc3b..4276470 100755 --- a/t/db_dependent/Sitemapper.t +++ b/t/db_dependent/Sitemapper.t @@ -40,12 +40,7 @@ sub slurp { return $cont; } -use Test::DBIx::Class { - schema_class => 'Koha::Schema', - connect_info => ['dbi:SQLite:dbname=:memory:','',''], - connect_opts => { name_sep => '.', quote_char => '`', }, - fixture_class => '::Populate', -}, 'Biblio' ; +use Test::DBIx::Class; sub fixtures { my ( $data ) = @_; diff --git a/t/etc/schema.pl b/t/etc/schema.pl new file mode 100644 index 0000000..509fe4c --- /dev/null +++ b/t/etc/schema.pl @@ -0,0 +1,7 @@ +{ + schema_class => 'Koha::Schema', +# This is the default option when nothing is defined +# connect_info => ['dbi:SQLite:dbname=:memory:','',''], + connect_opts => { name_sep => '.', quote_char => '`', sqlite_unicode => 1}, + fixture_class => '::Populate', +}; -- 2.7.4