From: Peter Rabbitson Date: Fri, 12 Feb 2010 12:52:55 +0000 (+0000) Subject: Merge 'trunk' into 'dephandling' X-Git-Tag: v0.08119~14^2~5 X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=dbsrgits%2FDBIx-Class.git;a=commitdiff_plain;h=30da837490e110a19eeab063d7a94440502a07b1;hp=bb1329e09c7115768ffe2d52a4d70fff9549cd9d Merge 'trunk' into 'dephandling' r8628@Thesaurus (orig r8615): caelum | 2010-02-11 11:35:01 +0100 r21090@hlagh (orig r7836): caelum | 2009-11-02 06:40:52 -0500 new branch to fix unhandled methods in Storage::DBI::Replicated r21091@hlagh (orig r7837): caelum | 2009-11-02 06:42:00 -0500 add test to display unhandled methods r21092@hlagh (orig r7838): caelum | 2009-11-02 06:55:34 -0500 minor fix to last committed test r21093@hlagh (orig r7839): caelum | 2009-11-02 09:26:00 -0500 minor test code cleanup r23125@hlagh (orig r8607): caelum | 2010-02-10 19:25:51 -0500 add unimplemented Storage::DBI methods to ::DBI::Replicated r23130@hlagh (orig r8612): ribasushi | 2010-02-11 05:12:48 -0500 Podtesting exclusion r8630@Thesaurus (orig r8617): frew | 2010-02-11 11:45:54 +0100 Changes (from a while ago) r8631@Thesaurus (orig r8618): caelum | 2010-02-11 11:46:58 +0100 savepoints for SQLAnywhere r8640@Thesaurus (orig r8627): ribasushi | 2010-02-11 12:33:19 +0100 r8424@Thesaurus (orig r8411): ribasushi | 2010-01-22 11:19:40 +0100 Chaining POC test r8641@Thesaurus (orig r8628): ribasushi | 2010-02-11 12:34:19 +0100 r8426@Thesaurus (orig r8413): ribasushi | 2010-01-22 11:35:15 +0100 Moev failing regression test away from trunk r8642@Thesaurus (orig r8629): ribasushi | 2010-02-11 12:34:56 +0100 r8643@Thesaurus (orig r8630): ribasushi | 2010-02-11 12:35:03 +0100 r8507@Thesaurus (orig r8494): frew | 2010-02-01 04:33:08 +0100 small refactor to put select/as/+select/+as etc merging in it's own function r8644@Thesaurus (orig r8631): ribasushi | 2010-02-11 12:35:11 +0100 r8514@Thesaurus (orig r8501): frew | 2010-02-02 05:12:29 +0100 revert actual changes from yesterday as per ribasushis advice r8645@Thesaurus (orig r8632): ribasushi | 2010-02-11 12:35:16 +0100 r8522@Thesaurus (orig r8509): frew | 2010-02-02 19:39:33 +0100 delete +stuff if stuff exists r8646@Thesaurus (orig r8633): ribasushi | 2010-02-11 12:35:23 +0100 r8534@Thesaurus (orig r8521): frew | 2010-02-03 06:14:44 +0100 change deletion/overriding to fix t/76 r8647@Thesaurus (orig r8634): ribasushi | 2010-02-11 12:35:30 +0100 r8535@Thesaurus (orig r8522): frew | 2010-02-03 06:57:15 +0100 some basic readability factorings (aka, fewer nested ternaries and long maps) r8648@Thesaurus (orig r8635): ribasushi | 2010-02-11 12:36:01 +0100 r8558@Thesaurus (orig r8545): frew | 2010-02-04 20:32:54 +0100 fix incorrect test in t/76select.t and posit an incorrect solution r8649@Thesaurus (orig r8636): ribasushi | 2010-02-11 12:38:47 +0100 r8650@Thesaurus (orig r8637): ribasushi | 2010-02-11 12:38:57 +0100 r8578@Thesaurus (orig r8565): ribasushi | 2010-02-05 19:11:09 +0100 Should not be needed r8651@Thesaurus (orig r8638): ribasushi | 2010-02-11 12:39:03 +0100 r8579@Thesaurus (orig r8566): ribasushi | 2010-02-05 19:13:24 +0100 SQLA now fixed r8652@Thesaurus (orig r8639): ribasushi | 2010-02-11 12:39:10 +0100 r8624@Thesaurus (orig r8611): ribasushi | 2010-02-11 10:31:08 +0100 MOAR testing r8653@Thesaurus (orig r8640): ribasushi | 2010-02-11 12:39:17 +0100 r8626@Thesaurus (orig r8613): frew | 2010-02-11 11:16:30 +0100 fix bad test r8654@Thesaurus (orig r8641): ribasushi | 2010-02-11 12:39:23 +0100 r8627@Thesaurus (orig r8614): frew | 2010-02-11 11:21:52 +0100 fix t/76, break rsc tests r8655@Thesaurus (orig r8642): ribasushi | 2010-02-11 12:39:30 +0100 r8632@Thesaurus (orig r8619): frew | 2010-02-11 11:53:50 +0100 fix incorrect test r8656@Thesaurus (orig r8643): ribasushi | 2010-02-11 12:39:35 +0100 r8633@Thesaurus (orig r8620): frew | 2010-02-11 11:54:49 +0100 make t/76s and t/88 pass by deleting from the correct attr hash r8657@Thesaurus (orig r8644): ribasushi | 2010-02-11 12:39:40 +0100 r8634@Thesaurus (orig r8621): frew | 2010-02-11 11:55:41 +0100 fix a test due to ordering issues r8658@Thesaurus (orig r8645): ribasushi | 2010-02-11 12:39:45 +0100 r8635@Thesaurus (orig r8622): frew | 2010-02-11 11:58:23 +0100 this is why you run tests before you commit them. r8659@Thesaurus (orig r8646): ribasushi | 2010-02-11 12:39:51 +0100 r8636@Thesaurus (orig r8623): frew | 2010-02-11 12:00:59 +0100 fix another ordering issue r8660@Thesaurus (orig r8647): ribasushi | 2010-02-11 12:39:57 +0100 r8637@Thesaurus (orig r8624): frew | 2010-02-11 12:11:31 +0100 fix for search/select_chains r8661@Thesaurus (orig r8648): ribasushi | 2010-02-11 12:40:03 +0100 r8662@Thesaurus (orig r8649): caelum | 2010-02-11 12:40:07 +0100 test nanosecond precision for SQLAnywhere r8663@Thesaurus (orig r8650): ribasushi | 2010-02-11 12:40:09 +0100 r8639@Thesaurus (orig r8626): ribasushi | 2010-02-11 12:33:03 +0100 Changes and small ommission r8666@Thesaurus (orig r8653): ribasushi | 2010-02-11 18:16:45 +0100 Changes r8674@Thesaurus (orig r8661): ribasushi | 2010-02-12 09:12:45 +0100 Fix moose dep --- diff --git a/Makefile.PL b/Makefile.PL index ea56856..fad5ce5 100644 --- a/Makefile.PL +++ b/Makefile.PL @@ -5,136 +5,111 @@ use POSIX (); use 5.008001; -# ****** DO NOT ADD OPTIONAL DEPENDENCIES. EVER. --mst ****** +use FindBin; +use lib "$FindBin::Bin/lib"; name 'DBIx-Class'; perl_version '5.008001'; all_from 'lib/DBIx/Class.pm'; +my $build_requires = { + 'DBD::SQLite' => '1.25', +}; + +my $test_requires = { + 'File::Temp' => '0.22', + 'Test::Builder' => '0.33', + 'Test::Deep' => '0', + 'Test::Exception' => '0', + 'Test::More' => '0.92', + 'Test::Warn' => '0.21', +}; + +my $runtime_requires = { + # Core + 'List::Util' => '0', + 'Scalar::Util' => '0', + 'Storable' => '0', + + # Dependencies + 'Carp::Clan' => '6.0', + 'Class::Accessor::Grouped' => '0.09002', + 'Class::C3::Componentised' => '1.0005', + 'Class::Inspector' => '1.24', + 'Data::Page' => '2.00', + 'DBI' => '1.609', + 'JSON::Any' => '1.18', + 'MRO::Compat' => '0.09', + 'Module::Find' => '0.06', + 'Path::Class' => '0.16', + 'Scope::Guard' => '0.03', + 'SQL::Abstract' => '1.61', + 'SQL::Abstract::Limit' => '0.13', + 'Sub::Name' => '0.04', + 'Data::Dumper::Concise' => '1.000', +}; + +# this is so we can order requires alphabetically +# copies are needed for author requires injection +my $reqs = { + build_requires => { %$build_requires }, + requires => { %$runtime_requires }, + test_requires => { %$test_requires }, +}; -test_requires 'Test::Builder' => '0.33'; -test_requires 'Test::Deep' => '0'; -test_requires 'Test::Exception' => '0'; -test_requires 'Test::More' => '0.92'; -test_requires 'Test::Warn' => '0.21'; - -test_requires 'File::Temp' => '0.22'; - - -# Core -requires 'List::Util' => '0'; -requires 'Scalar::Util' => '0'; -requires 'Storable' => '0'; - -# Dependencies (keep in alphabetical order) -requires 'Carp::Clan' => '6.0'; -requires 'Class::Accessor::Grouped' => '0.09002'; -requires 'Class::C3::Componentised' => '1.0005'; -requires 'Class::Inspector' => '1.24'; -requires 'Data::Page' => '2.00'; -requires 'DBD::SQLite' => '1.25'; -requires 'DBI' => '1.609'; -requires 'JSON::Any' => '1.18'; -requires 'MRO::Compat' => '0.09'; -requires 'Module::Find' => '0.06'; -requires 'Path::Class' => '0.16'; -requires 'Scope::Guard' => '0.03'; -requires 'SQL::Abstract' => '1.61'; -requires 'SQL::Abstract::Limit' => '0.13'; -requires 'Sub::Name' => '0.04'; -requires 'Data::Dumper::Concise' => '1.000'; - -my %replication_requires = ( - 'Moose', => '0.98', - 'MooseX::Types', => '0.21', - 'namespace::clean' => '0.11', - 'Hash::Merge', => '0.11', -); - -#************************************************************************# -# Make *ABSOLUTELY SURE* that nothing on this list is a real require, # -# since every module listed in %force_requires_if_author is deleted # -# from the final META.yml (thus will never make it as a CPAN dependency) # -#************************************************************************# -my %force_requires_if_author = ( - %replication_requires, - - # when changing also adjust $DBIx::Class::Storage::DBI::minimum_sqlt_version - 'SQL::Translator' => '0.11002', - -# 'Module::Install::Pod::Inherit' => '0.01', - - # when changing also adjust version in t/02pod.t - 'Test::Pod' => '1.26', - - # when changing also adjust version in t/06notabs.t -# 'Test::NoTabs' => '0.9', - - # when changing also adjust version in t/07eol.t -# 'Test::EOL' => '0.6', - - # when changing also adjust version in t/03podcoverage.t - 'Test::Pod::Coverage' => '1.08', - 'Pod::Coverage' => '0.20', - - # CDBI-compat related - 'DBIx::ContextualFetch' => '0', - 'Class::DBI::Plugin::DeepAbstractSearch' => '0', - 'Class::Trigger' => '0', - 'Time::Piece::MySQL' => '0', - 'Clone' => '0', - 'Date::Simple' => '3.03', - - # t/52cycle.t - 'Test::Memory::Cycle' => '0', - 'Devel::Cycle' => '1.10', - - # t/36datetime.t - # t/60core.t - 'DateTime::Format::SQLite' => '0', - - # t/96_is_deteministic_value.t - 'DateTime::Format::Strptime'=> '0', - - # database-dependent reqs - # - $ENV{DBICTEST_PG_DSN} - ? ( - 'Sys::SigAction' => '0', - 'DBD::Pg' => '2.009002', - 'DateTime::Format::Pg' => '0', - ) : () - , - - $ENV{DBICTEST_MYSQL_DSN} - ? ( - 'DateTime::Format::MySQL' => '0', - ) : () - , - - $ENV{DBICTEST_ORA_DSN} - ? ( - 'DateTime::Format::Oracle' => '0', - ) : () - , - - $ENV{DBICTEST_SYBASE_DSN} - ? ( - 'DateTime::Format::Sybase' => 0, - ) : () - , - grep $_, @ENV{qw/DBICTEST_SYBASE_ASA_DSN DBICTEST_SYBASE_ASA_ODBC_DSN/} - ? ( - 'DateTime::Format::Strptime' => 0, - ) : () - , -); -#************************************************************************# -# Make ABSOLUTELY SURE that nothing on the list above is a real require, # -# since every module listed in %force_requires_if_author is deleted # -# from the final META.yml (thus will never make it as a CPAN dependency) # -#************************************************************************# +# re-build README and require extra modules for testing if we're in a checkout +if ($Module::Install::AUTHOR) { + + print "Regenerating README\n"; + system('pod2text lib/DBIx/Class.pm > README'); + + if (-f 'MANIFEST') { + print "Removing MANIFEST\n"; + unlink 'MANIFEST'; + } +# FIXME Disabled due to unsolved issues, ask theorbtwo +# require Module::Install::Pod::Inherit; +# PodInherit(); + + warn <<'EOW'; +****************************************************************************** +****************************************************************************** +*** *** +*** AUTHOR MODE: all optional test dependencies converted to hard requires *** +*** *** +****************************************************************************** +****************************************************************************** + +EOW + + require DBIx::Class::Optional::Dependencies; + $reqs->{test_requires} = { + %{$reqs->{test_requires}}, + %{DBIx::Class::Optional::Dependencies->all_optional_requirements}, + }; +} + +# compose final req list, for alphabetical ordering +my %final_req; +for my $rtype (keys %$reqs) { + for my $mod (keys %{$reqs->{$rtype}} ) { + + # sanity check req duplications + if ($final_req{$mod}) { + die "$mod specified as both a $rtype and a $final_req{$mod}[1]\n"; + } + + $final_req{$mod} = [ $rtype, $reqs->{$rtype}{$mod}||0 ], + } +} + +# actual require +for my $mod (sort keys %final_req) { + my ($rtype, $ver) = @{$final_req{$mod}}; + no strict 'refs'; + $rtype->($mod, $ver); +} install_script (qw| script/dbicadmin @@ -159,46 +134,22 @@ no_index package => $_ for (qw/ DBIx::Class::SQLAHacks DBIx::Class::Storage::DBIHacks /); -# re-build README and require extra modules for testing if we're in a checkout - -if ($Module::Install::AUTHOR) { - warn <<'EOW'; -****************************************************************************** -****************************************************************************** -*** *** -*** AUTHOR MODE: all optional test dependencies converted to hard requires *** -*** *** -****************************************************************************** -****************************************************************************** - -EOW - - foreach my $module (sort keys %force_requires_if_author) { - build_requires ($module => $force_requires_if_author{$module}); - } - - print "Regenerating README\n"; - system('pod2text lib/DBIx/Class.pm > README'); - - if (-f 'MANIFEST') { - print "Removing MANIFEST\n"; - unlink 'MANIFEST'; - } - -# require Module::Install::Pod::Inherit; -# PodInherit(); -} auto_install(); WriteAll(); + # Re-write META.yml to _exclude_ all forced requires (we do not want to ship this) if ($Module::Install::AUTHOR) { + # FIXME test_requires is not yet part of META + my %original_build_requires = ( %$build_requires, %$test_requires ); + + print "Regenerating META with author requires excluded\n"; Meta->{values}{build_requires} = [ grep - { not exists $force_requires_if_author{$_->[0]} } - ( @{Meta->{values}{build_requires}} ) + { exists $original_build_requires{$_->[0]} } + ( @{Meta->{values}{build_requires}} ) ]; Meta->write; diff --git a/lib/DBIx/Class.pm b/lib/DBIx/Class.pm index 60a4f75..5da8951 100644 --- a/lib/DBIx/Class.pm +++ b/lib/DBIx/Class.pm @@ -6,6 +6,8 @@ use warnings; use MRO::Compat; use mro 'c3'; +use DBIx::Class::Optional::Dependencies; + use vars qw($VERSION); use base qw/DBIx::Class::Componentised Class::Accessor::Grouped/; use DBIx::Class::StartupCheck; diff --git a/lib/DBIx/Class/Optional/Dependencies.pm b/lib/DBIx/Class/Optional/Dependencies.pm new file mode 100644 index 0000000..aa4701f --- /dev/null +++ b/lib/DBIx/Class/Optional/Dependencies.pm @@ -0,0 +1,185 @@ +package DBIx::Class::Optional::Dependencies; + +use warnings; +use strict; + +use Carp; + +# NO EXTERNAL NON-5.8.1 CORE DEPENDENCIES EVER (e.g. C::A::G) +# This module is to be loaded by Makefile.PM on a pristine system + +my $reqs = { + dist => { + #'Module::Install::Pod::Inherit' => '0.01', + }, + + replicated => { + 'Moose' => '0.98', + 'MooseX::Types' => '0.21', + 'namespace::clean' => '0.11', + 'Hash::Merge' => '0.11', + }, + + admin => { + }, + + deploy => { + 'SQL::Translator' => '0.11002', + }, + + author => { + 'Test::Pod' => '1.26', + 'Test::Pod::Coverage' => '1.08', + 'Pod::Coverage' => '0.20', + #'Test::NoTabs' => '0.9', + #'Test::EOL' => '0.6', + }, + + core => { + # t/52cycle.t + 'Test::Memory::Cycle' => '0', + 'Devel::Cycle' => '1.10', + + # t/36datetime.t + # t/60core.t + 'DateTime::Format::SQLite' => '0', + + # t/96_is_deteministic_value.t + 'DateTime::Format::Strptime'=> '0', + }, + + cdbicompat => { + 'DBIx::ContextualFetch' => '0', + 'Class::DBI::Plugin::DeepAbstractSearch' => '0', + 'Class::Trigger' => '0', + 'Time::Piece::MySQL' => '0', + 'Clone' => '0', + 'Date::Simple' => '3.03', + }, + + rdbms_pg => { + $ENV{DBICTEST_PG_DSN} + ? ( + 'Sys::SigAction' => '0', + 'DBD::Pg' => '2.009002', + 'DateTime::Format::Pg' => '0', + ) : () + }, + + rdbms_mysql => { + $ENV{DBICTEST_MYSQL_DSN} + ? ( + 'DateTime::Format::MySQL' => '0', + 'DBD::mysql' => '0', + ) : () + }, + + rdbms_oracle => { + + $ENV{DBICTEST_ORA_DSN} + ? ( + 'DateTime::Format::Oracle' => '0', + ) : () + }, + + rdbms_ase => { + $ENV{DBICTEST_SYBASE_DSN} + ? ( + 'DateTime::Format::Sybase' => 0, + ) : () + }, + + rdbms_asa => { + grep $_, @ENV{qw/DBICTEST_SYBASE_ASA_DSN DBICTEST_SYBASE_ASA_ODBC_DSN/} + ? ( + 'DateTime::Format::Strptime' => 0, + ) : () + }, +}; + +sub all_optional_requirements { + return { map { %{ $_ || {} } } (values %$reqs) }; +} + +sub req_list_for { + my ($class, $group) = @_; + + die "req_list_for() expects a requirement group name" + unless $group; + + my $deps = $reqs->{$group} + or die "Requirement group '$group' does not exist"; + + return { %$deps }; +} + + +our %req_availability_cache; +sub req_ok_for { + my ($class, $group) = @_; + + croak "req_ok_for() expects a requirement group name" + unless $group; + + $class->_check_deps ($group) unless $req_availability_cache{$group}; + + return $req_availability_cache{$group}{status}; +} + +sub req_missing_for { + my ($class, $group) = @_; + + croak "req_missing_for() expects a requirement group name" + unless $group; + + $class->_check_deps ($group) unless $req_availability_cache{$group}; + + return $req_availability_cache{$group}{missing}; +} + +sub req_errorlist_for { + my ($class, $group) = @_; + + croak "req_errorlist_for() expects a requirement group name" + unless $group; + + $class->_check_deps ($group) unless $req_availability_cache{$group}; + + return $req_availability_cache{$group}{errorlist}; +} + +sub _check_deps { + my ($class, $group) = @_; + + my $deps = $reqs->{$group} + or croak "Requirement group '$group' does not exist"; + + my %errors; + for my $mod (keys %$deps) { + if (my $ver = $deps->{$mod}) { + eval "use $mod $ver ()"; + } + else { + eval "require $mod"; + } + + $errors{$mod} = $@ if $@; + } + + if (keys %errors) { + $req_availability_cache{$group} = { + status => 0, + errorlist => { %errors }, + missing => join (', ', map { $deps->{$_} ? "$_ >= $deps->{$_}" : $_ } (sort keys %errors) ), + }; + } + else { + $req_availability_cache{$group} = { + status => 1, + errorlist => {}, + missing => '', + }; + } +} + +1; diff --git a/lib/DBIx/Class/Schema/Versioned.pm b/lib/DBIx/Class/Schema/Versioned.pm index d42b897..10edb01 100644 --- a/lib/DBIx/Class/Schema/Versioned.pm +++ b/lib/DBIx/Class/Schema/Versioned.pm @@ -617,8 +617,9 @@ sub _create_db_to_schema_diff { return; } - $self->throw_exception($self->storage->_sqlt_version_error) - if (not $self->storage->_sqlt_version_ok); + unless (DBIx::Class::Optional::Dependencies->req_ok_for ('deploy')) { + $self->throw_exception("Unable to proceed without " . DBIx::Class::Optional::Dependencies->req_missing_for ('deploy') ); + } my $db_tr = SQL::Translator->new({ add_drop_table => 1, diff --git a/lib/DBIx/Class/Storage/DBI.pm b/lib/DBIx/Class/Storage/DBI.pm index 32c6ed1..0030431 100644 --- a/lib/DBIx/Class/Storage/DBI.pm +++ b/lib/DBIx/Class/Storage/DBI.pm @@ -16,11 +16,6 @@ use List::Util(); use Data::Dumper::Concise(); use Sub::Name (); -# what version of sqlt do we require if deploy() without a ddl_dir is invoked -# when changing also adjust the corresponding author_require in Makefile.PL -my $minimum_sqlt_version = '0.11002'; - - __PACKAGE__->mk_group_accessors('simple' => qw/_connect_info _dbi_connect_info _dbh _sql_maker _sql_maker_opts _conn_pid _conn_tid transaction_depth _dbh_autocommit _driver_determined savepoints/ @@ -2251,8 +2246,9 @@ sub create_ddl_dir { %{$sqltargs || {}} }; - $self->throw_exception("Can't create a ddl file without SQL::Translator: " . $self->_sqlt_version_error) - if !$self->_sqlt_version_ok; + unless (DBIx::Class::Optional::Dependencies->req_ok_for ('deploy')) { + $self->throw_exception("Can't create a ddl file without " . DBIx::Class::Optional::Dependencies->req_missing_for ('deploy') ); + } my $sqlt = SQL::Translator->new( $sqltargs ); @@ -2394,8 +2390,9 @@ sub deployment_statements { return join('', @rows); } - $self->throw_exception("Can't deploy without either SQL::Translator or a ddl_dir: " . $self->_sqlt_version_error ) - if !$self->_sqlt_version_ok; + unless (DBIx::Class::Optional::Dependencies->req_ok_for ('deploy') ) { + $self->throw_exception("Can't deploy without a ddl_dir or " . DBIx::Class::Optional::Dependencies->req_missing_for ('deploy') ); + } # sources needs to be a parser arg, but for simplicty allow at top level # coming in @@ -2519,33 +2516,6 @@ sub lag_behind_master { return; } -# SQLT version handling -{ - my $_sqlt_version_ok; # private - my $_sqlt_version_error; # private - - sub _sqlt_version_ok { - if (!defined $_sqlt_version_ok) { - eval "use SQL::Translator $minimum_sqlt_version"; - if ($@) { - $_sqlt_version_ok = 0; - $_sqlt_version_error = $@; - } - else { - $_sqlt_version_ok = 1; - } - } - return $_sqlt_version_ok; - } - - sub _sqlt_version_error { - shift->_sqlt_version_ok unless defined $_sqlt_version_ok; - return $_sqlt_version_error; - } - - sub _sqlt_minimum_version { $minimum_sqlt_version }; -} - =head2 relname_to_table_alias =over 4 diff --git a/t/86sqlt.t b/t/86sqlt.t index 26e1fc2..a832325 100644 --- a/t/86sqlt.t +++ b/t/86sqlt.t @@ -6,10 +6,10 @@ use lib qw(t/lib); use DBICTest; BEGIN { - require DBIx::Class::Storage::DBI; + require DBIx::Class; plan skip_all => - 'Test needs SQL::Translator ' . DBIx::Class::Storage::DBI->_sqlt_minimum_version - if not DBIx::Class::Storage::DBI->_sqlt_version_ok; + 'Test needs ' . DBIx::Class::Optional::Dependencies->req_missing_for ('deploy') + unless DBIx::Class::Optional::Dependencies->req_ok_for ('deploy') } my $schema = DBICTest->init_schema (no_deploy => 1); diff --git a/t/94versioning.t b/t/94versioning.t index 58c25d3..685809b 100644 --- a/t/94versioning.t +++ b/t/94versioning.t @@ -22,10 +22,10 @@ BEGIN { || plan skip_all => 'Test needs Time::HiRes'; Time::HiRes->import(qw/time sleep/); - require DBIx::Class::Storage::DBI; + require DBIx::Class; plan skip_all => - 'Test needs SQL::Translator ' . DBIx::Class::Storage::DBI->_sqlt_minimum_version - if not DBIx::Class::Storage::DBI->_sqlt_version_ok; + 'Test needs ' . DBIx::Class::Optional::Dependencies->req_missing_for ('deploy') + unless DBIx::Class::Optional::Dependencies->req_ok_for ('deploy') } use lib qw(t/lib); diff --git a/t/99dbic_sqlt_parser.t b/t/99dbic_sqlt_parser.t index 628f3cf..7487c72 100644 --- a/t/99dbic_sqlt_parser.t +++ b/t/99dbic_sqlt_parser.t @@ -9,10 +9,10 @@ use DBICTest::Schema; use Scalar::Util (); BEGIN { - require DBIx::Class::Storage::DBI; + require DBIx::Class; plan skip_all => - 'Test needs SQL::Translator ' . DBIx::Class::Storage::DBI->_sqlt_minimum_version - if not DBIx::Class::Storage::DBI->_sqlt_version_ok; + 'Test needs ' . DBIx::Class::Optional::Dependencies->req_missing_for ('deploy') + unless DBIx::Class::Optional::Dependencies->req_ok_for ('deploy') } # Test for SQLT-related leaks