Massive cleanup of DateTime test dependencies, other interim
Peter Rabbitson [Mon, 30 Aug 2010 04:38:34 +0000 (06:38 +0200)]
janitorial work

59 files changed:
Changes
lib/DBIx/Class/Optional/Dependencies.pm
t/105view_deps.t
t/40resultsetmanager.t
t/71mysql.t
t/72pg.t
t/746db2_400.t
t/746sybase.t
t/77join_count.t
t/93nobindvars.t
t/94versioning.t
t/96_is_deteministic_value.t
t/98savepoints.t
t/99dbic_sqlt_parser.t
t/admin/03data.t
t/bind/bindtype_columns.t
t/cdbi/02-Film.t
t/cdbi/03-subclassing.t
t/cdbi/06-hasa.t
t/cdbi/09-has_many.t
t/cdbi/11-triggers.t
t/cdbi/12-filter.t
t/cdbi/13-constraint.t
t/cdbi/14-might_have.t
t/cdbi/15-accessor.t
t/cdbi/16-reserved.t
t/cdbi/18-has_a.t
t/cdbi/19-set_sql.t
t/cdbi/21-iterator.t
t/cdbi/22-deflate_order.t
t/cdbi/23-cascade.t
t/cdbi/24-meta_info.t
t/cdbi/26-mutator.t
t/cdbi/30-pager.t
t/cdbi/68-inflate_has_a.t
t/cdbi/98-failure.t
t/cdbi/DeepAbstractSearch/01_search.t
t/cdbi/abstract/search_where.t
t/cdbi/has_many_loads_foreign_class.t
t/cdbi/max_min_value_of.t
t/cdbi/mk_group_accessors.t
t/cdbi/object_cache.t
t/cdbi/set_to_undef.t
t/cdbi/set_vs_DateTime.t
t/cdbi/sweet/08pager.t
t/inflate/core.t
t/inflate/datetime.t
t/inflate/datetime_determine_parser.t
t/inflate/datetime_firebird.t
t/inflate/datetime_informix.t
t/inflate/datetime_mssql.t
t/inflate/datetime_mysql.t
t/inflate/datetime_oracle.t
t/inflate/datetime_pg.t
t/inflate/datetime_sybase.t
t/inflate/datetime_sybase_asa.t
t/inflate/serialize.t
t/resultset/plus_select.t
t/storage/replicated.t

diff --git a/Changes b/Changes
index c1f7906..d23d8b9 100644 (file)
--- a/Changes
+++ b/Changes
@@ -37,6 +37,7 @@ Revision history for DBIx::Class
           from tests (RT#59565)
         - Do not execute t/zzzzzzz_sqlite_deadlock.t for regular module
           installs - test is prone to spontaneous blow up
+        - DT-related tests now require a DateTime >= 0.55 (RT#60324)
 
 0.08123 2010-06-12 14:46 (UTC)
     * Fixes
index 6d4ed6f..65994bf 100644 (file)
@@ -12,16 +12,26 @@ use Carp;
 # Makefile.PL in $AUTHOR mode
 
 my $moose_basic = {
-  'Moose'                      => '0.98',
-  'MooseX::Types'              => '0.21',
+  'Moose'                         => '0.98',
+  'MooseX::Types'                 => '0.21',
+};
+
+my $replicated = {
+  %$moose_basic,
+  'Hash::Merge'                   => '0.12',
 };
 
 my $admin_basic = {
   %$moose_basic,
-  'MooseX::Types::Path::Class' => '0.05',
-  'MooseX::Types::JSON'        => '0.02',
-  'JSON::Any'                  => '1.22',
-  'namespace::autoclean'       => '0.09',
+  'MooseX::Types::Path::Class'    => '0.05',
+  'MooseX::Types::JSON'           => '0.02',
+  'JSON::Any'                     => '1.22',
+  'namespace::autoclean'          => '0.09',
+};
+
+my $datetime_basic = {
+  'DateTime'                      => '0.55',
+  'DateTime::Format::Strptime'    => '1.2',
 };
 
 my $reqs = {
@@ -30,16 +40,21 @@ my $reqs = {
   },
 
   replicated => {
-    req => {
-      %$moose_basic,
-      'Hash::Merge'               => '0.12',
-    },
+    req => $replicated,
     pod => {
       title => 'Storage::Replicated',
       desc => 'Modules required for L<DBIx::Class::Storage::DBI::Replicated>',
     },
   },
 
+  test_replicated => {
+    req => {
+      %$replicated,
+      'Test::Moose'               => '0',
+    },
+  },
+
+
   admin => {
     req => {
       %$admin_basic,
@@ -106,26 +121,38 @@ my $reqs = {
     },
   },
 
-  test_dtrelated => {
+  test_dt => {
+    req => $datetime_basic,
+  },
+
+  test_dt_sqlite => {
     req => {
+      %$datetime_basic,
       # t/36datetime.t
       # t/60core.t
       'DateTime::Format::SQLite'  => '0',
+    },
+  },
 
-      # t/96_is_deteministic_value.t
-      'DateTime::Format::Strptime'=> '0',
-
+  test_dt_mysql => {
+    req => {
+      %$datetime_basic,
       # t/inflate/datetime_mysql.t
       # (doesn't need Mysql itself)
-      'DateTime::Format::MySQL' => '0',
+      'DateTime::Format::MySQL'   => '0',
+    },
+  },
 
+  test_dt_pg => {
+    req => {
+      %$datetime_basic,
       # t/inflate/datetime_pg.t
       # (doesn't need PG itself)
-      'DateTime::Format::Pg'  => '0',
+      'DateTime::Format::Pg'      => '0',
     },
   },
 
-  cdbicompat => {
+  test_cdbicompat => {
     req => {
       'DBIx::ContextualFetch'     => '0',
       'Class::DBI::Plugin::DeepAbstractSearch' => '0',
@@ -136,7 +163,7 @@ my $reqs = {
     },
   },
 
-  rdbms_pg => {
+  test_rdbms_pg => {
     req => {
       $ENV{DBICTEST_PG_DSN}
         ? (
@@ -146,7 +173,7 @@ my $reqs = {
     },
   },
 
-  rdbms_mysql => {
+  test_rdbms_mysql => {
     req => {
       $ENV{DBICTEST_MYSQL_DSN}
         ? (
@@ -155,7 +182,7 @@ my $reqs = {
     },
   },
 
-  rdbms_oracle => {
+  test_rdbms_oracle => {
     req => {
       $ENV{DBICTEST_ORA_DSN}
         ? (
@@ -165,7 +192,7 @@ my $reqs = {
     },
   },
 
-  rdbms_ase => {
+  test_rdbms_ase => {
     req => {
       $ENV{DBICTEST_SYBASE_DSN}
         ? (
@@ -174,16 +201,7 @@ my $reqs = {
     },
   },
 
-  rdbms_asa => {
-    req => {
-      (scalar grep { $ENV{$_} } (qw/DBICTEST_SYBASE_ASA_DSN DBICTEST_SYBASE_ASA_ODBC_DSN/) )
-        ? (
-          'DateTime::Format::Strptime' => 0,
-        ) : ()
-    },
-  },
-
-  rdbms_db2 => {
+  test_rdbms_db2 => {
     req => {
       $ENV{DBICTEST_DB2_DSN}
         ? (
index a2e5485..d056e9d 100644 (file)
@@ -12,12 +12,13 @@ use ViewDepsBad;
 
 BEGIN {
     require DBIx::Class;
-    plan skip_all => 'Test needs '
-        . DBIx::Class::Optional::Dependencies->req_missing_for('deploy')
-        unless DBIx::Class::Optional::Dependencies->req_ok_for('deploy');
-    use_ok('DBIx::Class::ResultSource::View');
+    plan skip_all => 'Test needs ' .
+        DBIx::Class::Optional::Dependencies->req_missing_for('deploy')
+      unless DBIx::Class::Optional::Dependencies->req_ok_for('deploy');
 }
 
+use_ok('DBIx::Class::ResultSource::View');
+
 #################### SANITY
 
 my $view = DBIx::Class::ResultSource::View->new;
index 66f9598..2ac44eb 100644 (file)
@@ -5,20 +5,11 @@ use Test::More;
 use lib qw(t/lib);
 
 BEGIN {
-  eval { require Class::Inspector };
-  if ($@ =~ m{Can.t locate Class/Inspector.pm}) {
-    plan skip_all => "ResultSetManager requires Class::Inspector";
-  } else {
-    plan tests => 4;
-  }
-}
-
-BEGIN {
   local $SIG{__WARN__} = sub {};
   require DBIx::Class::ResultSetManager;
 }
 
-use DBICTest::ResultSetManager; # uses Class::Inspector
+use DBICTest::ResultSetManager;
 
 my $schema = DBICTest::ResultSetManager->compose_namespace('DB');
 my $rs = $schema->resultset('Foo');
@@ -27,3 +18,5 @@ ok( !DB::Foo->can('bar'), 'Foo class does not have bar method' );
 ok( $rs->can('bar'), 'Foo resultset class has bar method' );
 isa_ok( $rs, 'DBICTest::ResultSetManager::Foo::_resultset', 'Foo resultset class is correct' );
 is( $rs->bar, 'good', 'bar method works' );
+
+done_testing;
index f935afd..01c32d8 100644 (file)
@@ -1,5 +1,5 @@
 use strict;
-use warnings;  
+use warnings;
 
 use Test::More;
 use Test::Exception;
index cdfce99..67911aa 100644 (file)
--- a/t/72pg.t
+++ b/t/72pg.t
@@ -32,8 +32,10 @@ DBICTest::Schema->load_classes( map {s/.+:://;$_} @test_classes ) if @test_class
 
     # Check that datetime_parser returns correctly before we explicitly connect.
     SKIP: {
-        eval { require DateTime::Format::Pg };
-        skip "DateTime::Format::Pg required", 2 if $@;
+        skip (
+          "Pg parser detection test needs " . DBIx::Class::Optional::Dependencies->req_missing_for ('test_dt_pg'),
+          2
+        ) unless DBIx::Class::Optional::Dependencies->req_ok_for ('test_dt_pg');
 
         my $store = ref $s->storage;
         is($store, 'DBIx::Class::Storage::DBI', 'Started with generic storage');
index 359c13e..29b7ff1 100644 (file)
@@ -1,5 +1,5 @@
 use strict;
-use warnings;  
+use warnings;
 
 use Test::More;
 use lib qw(t/lib);
index 2210db7..6b54699 100644 (file)
@@ -1,5 +1,5 @@
 use strict;
-use warnings;  
+use warnings;
 no warnings 'uninitialized';
 
 use Test::More;
index f46ad04..8350e2e 100644 (file)
@@ -1,5 +1,5 @@
 use strict;
-use warnings;  
+use warnings;
 
 use Test::More;
 use lib qw(t/lib);
@@ -7,10 +7,6 @@ use DBICTest;
 
 my $schema = DBICTest->init_schema();
 
-eval "use DBD::SQLite";
-plan skip_all => 'needs DBD::SQLite for testing' if $@;
-plan tests => 4;
-
 cmp_ok($schema->resultset("CD")->count({ 'artist.name' => 'Caterwauler McCrae' },
                            { join => 'artist' }),
            '==', 3, 'Count by has_a ok');
@@ -29,3 +25,4 @@ cmp_ok($schema->resultset("CD")->count(
            { join => [ qw/tags liner_notes/ ] } ),
            '==', 2, "Mixed count ok");
 
+done_testing;
index e6ee0eb..a2e0cba 100644 (file)
@@ -1,9 +1,5 @@
 use strict;
-use warnings;  
-
-# Copied from 71mysql.t, manually using NoBindVars.  This is to give that code
-#  wider testing, since virtually nobody who regularly runs the test suite
-#  is using DBD::Sybase+FreeTDS+MSSQL -- blblack
+use warnings;
 
 use Test::More;
 use lib qw(t/lib);
@@ -17,8 +13,6 @@ my ($dsn, $user, $pass) = @ENV{map { "DBICTEST_MYSQL_${_}" } qw/DSN USER PASS/};
 plan skip_all => 'Set $ENV{DBICTEST_MYSQL_DSN}, _USER and _PASS to run this test'
   unless ($dsn && $user);
 
-plan tests => 4;
-
 { # Fake storage driver for mysql + no bind variables
     package DBIx::Class::Storage::DBI::MySQLNoBindVars;
     use Class::C3;
@@ -68,3 +62,5 @@ END {
     my $dbh = eval { $schema->storage->_dbh };
     $dbh->do("DROP TABLE artist") if $dbh;
 }
+
+done_testing;
index 2e0d18e..a21141a 100644 (file)
@@ -1,13 +1,10 @@
 use strict;
 use warnings;
+
 use Test::More;
 use Test::Warn;
 use Test::Exception;
 
-use Path::Class;
-use File::Copy;
-
-#warn "$dsn $user $pass";
 my ($dsn, $user, $pass);
 
 BEGIN {
@@ -16,16 +13,16 @@ BEGIN {
   plan skip_all => 'Set $ENV{DBICTEST_MYSQL_DSN}, _USER and _PASS to run this test'
     unless ($dsn);
 
-  eval { require Time::HiRes }
-    || plan skip_all => 'Test needs Time::HiRes';
-  Time::HiRes->import(qw/time sleep/);
-
   require DBIx::Class;
   plan skip_all =>
       'Test needs ' . DBIx::Class::Optional::Dependencies->req_missing_for ('deploy')
     unless DBIx::Class::Optional::Dependencies->req_ok_for ('deploy')
 }
 
+use Path::Class;
+use File::Copy;
+use Time::HiRes qw/time sleep/;
+
 use lib qw(t/lib);
 use DBICTest; # do not remove even though it is not used
 
index b6ca886..840a1c5 100644 (file)
@@ -1,15 +1,17 @@
 use strict;
 use warnings;
 
-# 6 tests
-
 use Test::More;
+use Test::Exception;
+
+BEGIN {
+  require DBIx::Class;
+  plan skip_all => 'Test needs ' . DBIx::Class::Optional::Dependencies->req_missing_for ('test_dt')
+    unless DBIx::Class::Optional::Dependencies->req_ok_for ('test_dt');
+}
+
 use lib qw(t/lib);
 use DBICTest;
-plan skip_all => "DateTime required" unless eval { require DateTime };
-eval "use DateTime::Format::Strptime";
-plan skip_all => 'DateTime::Format::Strptime required' if $@;
-use Test::Exception;
 
 my $schema = DBICTest->init_schema();
 my $artist_rs = $schema->resultset('Artist');
index 4ca9a95..45fe577 100644 (file)
@@ -2,9 +2,6 @@ use strict;
 use warnings;
 
 use Test::More;
-use lib qw(t/lib);
-use DBICTest;
-use DBICTest::Stats;
 
 my ($create_sql, $dsn, $user, $pass);
 
@@ -20,6 +17,10 @@ if ($ENV{DBICTEST_PG_DSN}) {
   plan skip_all => 'Set DBICTEST_(PG|MYSQL)_DSN _USER and _PASS if you want to run savepoint tests';
 }
 
+use lib qw(t/lib);
+use DBICTest;
+use DBICTest::Stats;
+
 plan tests => 16;
 
 my $schema = DBICTest::Schema->connect ($dsn,$user,$pass,{ auto_savepoint => 1 });
index 5ba72a8..61202b7 100644 (file)
@@ -3,9 +3,6 @@ use warnings;
 
 use Test::More;
 use Test::Exception;
-use lib qw(t/lib);
-use DBICTest;
-use DBICTest::Schema;
 use Scalar::Util ();
 
 BEGIN {
@@ -15,6 +12,10 @@ BEGIN {
     unless DBIx::Class::Optional::Dependencies->req_ok_for ('deploy')
 }
 
+use lib qw(t/lib);
+use DBICTest;
+use DBICTest::Schema;
+
 # Test for SQLT-related leaks
 {
   my $s = DBICTest::Schema->clone;
index 884b120..872b1cf 100644 (file)
@@ -2,7 +2,6 @@ use strict;
 use warnings;
 
 use Test::More;
-
 use Test::Exception;
 
 BEGIN {
index 72b460c..90ad8c6 100644 (file)
@@ -1,5 +1,5 @@
 use strict;
-use warnings;  
+use warnings;
 
 use Test::More;
 use lib qw(t/lib);
index f1477cc..2eb4f05 100644 (file)
@@ -8,7 +8,6 @@ BEGIN {
   eval "use DBIx::Class::CDBICompat;";
   if ($@) {
     plan (skip_all => 'Class::Trigger and DBIx::ContextualFetch required');
-    next;
   }
   plan tests => 98;
 }
index 8527fea..433999d 100644 (file)
@@ -11,8 +11,7 @@ BEGIN {
     plan (skip_all => 'Class::Trigger and DBIx::ContextualFetch required');
     next;
   }
-  eval "use DBD::SQLite";
-  plan $@ ? (skip_all => 'needs DBD::SQLite for testing') : (tests => 6);
+  plan tests => 6;
 }
 
 use lib 't/cdbi/testlib';
index 0fb3946..8cc8301 100644 (file)
@@ -5,10 +5,8 @@ BEGIN {
   eval "use DBIx::Class::CDBICompat;";
   if ($@) {
     plan (skip_all => "Class::Trigger and DBIx::ContextualFetch required: $@");
-    next;
   }
-  eval "use DBD::SQLite";
-  plan $@ ? (skip_all => 'needs DBD::SQLite for testing') : (tests => 24);
+  plan tests => 24;
 }
 
 @YA::Film::ISA = 'Film';
index 96b50c0..b9048dc 100644 (file)
@@ -5,8 +5,7 @@ use Test::More;
 BEGIN {
   eval "use DBIx::Class::CDBICompat;";
   plan skip_all => 'Class::Trigger and DBIx::ContextualFetch required' if $@;
-  eval "use DBD::SQLite";
-  plan $@ ? (skip_all => 'needs DBD::SQLite for testing') : (tests => 31);
+  plan tests => 31;
 }
 
 
index 918403a..37c179c 100644 (file)
@@ -7,8 +7,7 @@ BEGIN {
     plan (skip_all => 'Class::Trigger and DBIx::ContextualFetch required');
     next;
   }
-  eval "use DBD::SQLite";
-  plan $@ ? (skip_all => 'needs DBD::SQLite for testing') : (tests => 13);
+  plan tests => 13;
 }
 
 use lib 't/cdbi/testlib';
index bdc9687..109c876 100644 (file)
@@ -7,8 +7,7 @@ BEGIN {
     plan (skip_all => 'Class::Trigger and DBIx::ContextualFetch required');
     next;
   }
-  eval "use DBD::SQLite";
-  plan $@ ? (skip_all => 'needs DBD::SQLite for testing') : (tests => 50);
+  plan tests => 50;
 }
 
 use lib 't/cdbi/testlib';
@@ -129,10 +128,6 @@ test_normal_iterator;
 # make sure nothing gets clobbered;
 test_normal_iterator;
 
-SKIP: {
-  #skip "dbic iterators don't support slice yet", 12;
-
-
 {
   my @acts = $film->actors->slice(1, 2);
   is @acts, 2, "Slice gives 2 actor";
@@ -177,5 +172,3 @@ delete $film->{related_resultsets};
   eval { $film->actors->delete_all };
   is $@, '', "Deleting again does no harm";
 }
-
-} # end SKIP block
index b5b8f32..51b283a 100644 (file)
@@ -5,10 +5,8 @@ BEGIN {
   eval "use DBIx::Class::CDBICompat;";
   if ($@) {
     plan (skip_all => 'Class::Trigger and DBIx::ContextualFetch required');
-    next;
   }
-  eval "use DBD::SQLite";
-  plan $@ ? (skip_all => 'needs DBD::SQLite for testing') : (tests => 23);
+  plan tests => 23;
 }
 
 use lib 't/cdbi/testlib';
index a8c163f..156a089 100644 (file)
@@ -5,10 +5,8 @@ BEGIN {
   eval "use DBIx::Class::CDBICompat;";
   if ($@) {
     plan (skip_all => 'Class::Trigger and DBIx::ContextualFetch required');
-    next;
   }
-  eval "use DBD::SQLite";
-  plan $@ ? (skip_all => 'needs DBD::SQLite for testing') : (tests => 22);
+  plan tests => 22;
 }
 
 use lib 't/cdbi/testlib';
index b0b684c..39330e3 100644 (file)
@@ -5,10 +5,8 @@ BEGIN {
     eval "use DBIx::Class::CDBICompat;";
     if ($@) {
         plan (skip_all => 'Class::Trigger and DBIx::ContextualFetch required');
-        next;
     }
-    eval "use DBD::SQLite";
-    plan $@ ? (skip_all => 'needs DBD::SQLite for testing') : (tests => 75);
+    plan tests => 75;
 }
 
 INIT {
index 67693a0..201042b 100644 (file)
@@ -5,10 +5,8 @@ BEGIN {
   eval "use DBIx::Class::CDBICompat;";
   if ($@) {
     plan (skip_all => 'Class::Trigger and DBIx::ContextualFetch required');
-    next;
   }
-  eval "use DBD::SQLite";
-  plan $@ ? (skip_all => 'needs DBD::SQLite for testing') : (tests => 5);
+  plan tests => 5;
 }
 
 use lib 't/cdbi/testlib';
index 9732b65..a87c9f6 100644 (file)
@@ -5,10 +5,8 @@ BEGIN {
   eval "use DBIx::Class::CDBICompat;";
   if ($@) {
     plan (skip_all => 'Class::Trigger and DBIx::ContextualFetch required');
-    next;
   }
-  eval "use DBD::SQLite";
-  plan $@ ? (skip_all => 'needs DBD::SQLite for testing') : (tests => 41);
+  plan tests => 41;
 }
 
 use lib 't/cdbi/testlib';
index ebd571d..7118e4a 100644 (file)
@@ -5,10 +5,8 @@ BEGIN {
   eval "use DBIx::Class::CDBICompat;";
   if ($@) {
     plan (skip_all => 'Class::Trigger and DBIx::ContextualFetch required');
-    next;
   }
-  eval "use DBD::SQLite";
-  plan $@ ? (skip_all => 'needs DBD::SQLite for testing') : (tests => 20);
+  plan tests => 20;
 }
 
 use lib 't/cdbi/testlib';
index 6be3a5c..c6f6c3a 100644 (file)
@@ -5,10 +5,8 @@ BEGIN {
   eval "use DBIx::Class::CDBICompat;";
   if ($@) {
     plan (skip_all => "Class::Trigger and DBIx::ContextualFetch required: $@");
-    next;
   }
-  eval "use DBD::SQLite";
-  plan $@ ? (skip_all => 'needs DBD::SQLite for testing') : (tests => 37);
+  plan tests => 37;
 }
 
 use lib 't/cdbi/testlib';
index 3d53245..1de3f87 100644 (file)
@@ -3,18 +3,14 @@ use strict;
 
 use Test::More;
 
-eval "use DBIx::Class::CDBICompat;";
+eval "use DBIx::Class::CDBICompat; use Time::Piece::MySQL;";
 if ($@) {
-    plan (skip_all => "Class::Trigger and DBIx::ContextualFetch required: $@");
-    next;
+    plan (skip_all => "Time::Piece::MySQL, Class::Trigger and DBIx::ContextualFetch required: $@");
 }
 
 plan skip_all => 'Set $ENV{DBICTEST_MYSQL_DSN}, _USER and _PASS to run this test'
   unless ($ENV{DBICTEST_MYSQL_DSN} && $ENV{DBICTEST_MYSQL_USER});
 
-eval { require Time::Piece::MySQL };
-plan skip_all => "Need Time::Piece::MySQL for this test" if $@;
-
 plan tests => 3;
 
 use lib 't/cdbi/testlib';
index a681882..dbd55c6 100644 (file)
@@ -6,10 +6,8 @@ BEGIN {
   eval "use DBIx::Class::CDBICompat;";
   if ($@) {
     plan (skip_all => 'Class::Trigger and DBIx::ContextualFetch required');
-    next;
   }
-  eval "use DBD::SQLite";
-  plan $@ ? (skip_all => 'needs DBD::SQLite for testing') : (tests => 12);
+  plan tests => 12;
 }
 
 INIT {
index 7a269bd..ba72f17 100644 (file)
@@ -2,13 +2,10 @@ use strict;
 use Test::More;
 
 BEGIN {
-  eval "use DBIx::Class::CDBICompat;";
-  plan skip_all => "Class::Trigger and DBIx::ContextualFetch required: $@"
+  eval "use DBIx::Class::CDBICompat;use Time::Piece;";
+  plan skip_all => "Time::Piece, Class::Trigger and DBIx::ContextualFetch required: $@"
     if $@;
 
-  plan skip_all => "Time::Piece required for this test"
-    unless eval { require Time::Piece };
-
   plan tests => 12;
 }
 
index 7ba95bd..82049c3 100644 (file)
@@ -5,13 +5,7 @@ BEGIN {
   eval "use DBIx::Class::CDBICompat;";
   plan skip_all => "Class::Trigger and DBIx::ContextualFetch required: $@"
     if $@;
-}
-
-BEGIN {
-  eval "use DBD::SQLite";
-  plan $@
-    ? (skip_all => 'needs DBD::SQLite for testing')
-    : (tests => 6);
+  plan tests => 6;
 }
 
 use lib 't/cdbi/testlib';
index f7cb867..42c534e 100644 (file)
@@ -5,10 +5,8 @@ BEGIN {
   eval "use DBIx::Class::CDBICompat;";
   if ($@) {
     plan (skip_all => 'Class::Trigger and DBIx::ContextualFetch required');
-    next;
   }
-  eval "use DBD::SQLite";
-  plan $@ ? (skip_all => 'needs DBD::SQLite for testing') : (tests => 6);
+  plan tests => 6;
 }
 
 use lib 't/cdbi/testlib';
index 0019e29..7842f0a 100644 (file)
@@ -3,15 +3,9 @@ use warnings;
 use Test::More;
 
 BEGIN {
-  eval "use DBIx::Class::CDBICompat;";
-  plan skip_all => "Class::Trigger and DBIx::ContextualFetch required"
+  eval "use DBIx::Class::CDBICompat; use DateTime 0.55; use Clone;";
+  plan skip_all => "Clone, DateTime 0.55, Class::Trigger and DBIx::ContextualFetch required"
     if $@;
-
-  eval { require DateTime };
-  plan skip_all => "Need DateTime for inflation tests" if $@;
-
-  eval { require Clone };
-  plan skip_all => "Need Clone for CDBICompat inflation tests" if $@;
 }
 
 plan tests => 6;
index 0f584b1..918bbf5 100644 (file)
@@ -9,10 +9,8 @@ BEGIN {
   eval "use DBIx::Class::CDBICompat;";
   if ($@) {
     plan (skip_all => 'Class::Trigger and DBIx::ContextualFetch required');
-    next;
   }
-  eval "use DBD::SQLite";
-  plan $@ ? (skip_all => 'needs DBD::SQLite for testing') : (tests => 7);
+  plan tests => 7;
 }
 
 use lib 't/cdbi/testlib';
index 3db333e..599cec1 100644 (file)
@@ -2,18 +2,10 @@ use strict;
 use Test::More;
 
 BEGIN {
-    eval "use DBIx::Class::CDBICompat;";
+    eval "use DBIx::Class::CDBICompat; require Class::DBI::Plugin::DeepAbstractSearch;";
     if ($@) {
-        plan (skip_all => "Class::Trigger and DBIx::ContextualFetch required: $@");
-        next;
+        plan (skip_all => "Class::DBI::Plugin::DeepAbstractSearch, Class::Trigger and DBIx::ContextualFetch required: $@");
     }
-
-    plan skip_all => 'needs DBD::SQLite for testing'
-        unless eval { require DBD::SQLite };
-    
-    plan skip_all => 'needs Class::DBI::Plugin::DeepAbstractSearch'
-        unless eval { require Class::DBI::Plugin::DeepAbstractSearch };
-    
     plan tests => 19;
 }
 
index a8a2445..2fb28ff 100644 (file)
@@ -7,10 +7,8 @@ BEGIN {
   eval "use DBIx::Class::CDBICompat;";
   if ($@) {
     plan (skip_all => "Class::Trigger and DBIx::ContextualFetch required: $@");
-    next;
   }
-  eval "use DBD::SQLite";
-  plan $@ ? (skip_all => 'needs DBD::SQLite for testing') : (tests => 10);
+  plan tests => 10;
 }
 
 INIT {
index f6b30e7..e94a3ab 100644 (file)
@@ -5,8 +5,7 @@ use Test::More;
 BEGIN {
   eval "use DBIx::Class::CDBICompat;";
   plan skip_all => 'Class::Trigger and DBIx::ContextualFetch required' if $@;
-  eval "use DBD::SQLite";
-  plan $@ ? (skip_all => 'needs DBD::SQLite for testing') : (tests => 3);
+  plan tests => 3;
 }
 
 
index 4b23608..a9dfc8f 100644 (file)
@@ -9,10 +9,8 @@ BEGIN {
   eval "use DBIx::Class::CDBICompat;";
   if ($@) {
     plan (skip_all => 'Class::Trigger and DBIx::ContextualFetch required');
-    next;
   }
-  eval "use DBD::SQLite";
-  plan $@ ? (skip_all => 'needs DBD::SQLite for testing') : (tests => 2);
+  plan tests => 2;
 }
 
 use lib 't/cdbi/testlib';
index debd8d5..f7d4580 100644 (file)
@@ -4,9 +4,6 @@ use Test::More;
 BEGIN {
     eval "use DBIx::Class::CDBICompat;";
     plan skip_all => 'Class::Trigger and DBIx::ContextualFetch required' if $@;
-
-    eval "use DBD::SQLite";
-    plan skip_all => 'needs DBD::SQLite for testing' if $@;
 }
 
 INIT {
index 896f8eb..320242f 100644 (file)
@@ -7,9 +7,6 @@ BEGIN {
   if ($@) {
     plan (skip_all => 'Class::Trigger and DBIx::ContextualFetch required');
   }
-  
-  eval "use DBD::SQLite";
-  plan skip_all => 'needs DBD::SQLite for testing' if $@;
 }
 
 INIT {
index 47b0a35..2316bf8 100644 (file)
@@ -3,10 +3,9 @@ use Test::More;
 use lib 't/cdbi/testlib';
 
 BEGIN {
-  eval "use DBIx::Class::CDBICompat;";
-  plan skip_all => "Class::Trigger and DBIx::ContextualFetch required: $@"
+  eval "use DBIx::Class::CDBICompat;use DateTime 0.55;";
+  plan skip_all => "DateTime 0.55, Class::Trigger and DBIx::ContextualFetch required: $@"
     if $@;
-  plan skip_all => "DateTime required" unless eval { require DateTime };
   plan tests => 2;
 }
 
index 45ce621..48ae9f3 100644 (file)
@@ -4,10 +4,9 @@ use Test::Exception;
 use lib 't/cdbi/testlib';
 
 BEGIN {
-  eval "use DBIx::Class::CDBICompat;";
-  plan skip_all => "Class::Trigger and DBIx::ContextualFetch required: $@"
+  eval "use DBIx::Class::CDBICompat;use DateTime 0.55;";
+  plan skip_all => "DateTime 0.55, Class::Trigger and DBIx::ContextualFetch required: $@"
     if $@;
-  plan skip_all => "DateTime required" unless eval { require DateTime };
   plan tests => 1;
 }
 
index 07166e6..015ea98 100644 (file)
@@ -9,8 +9,7 @@ BEGIN {
     plan (skip_all => 'Class::Trigger and DBIx::ContextualFetch required');
     next;
   }
-  eval "use DBD::SQLite";
-  plan $@ ? (skip_all => 'needs DBD::SQLite for testing') : (tests => 10);
+  plan tests => 10;
 }
 
 use lib 't/lib';
index 9792951..3b105ce 100644 (file)
@@ -8,8 +8,8 @@ use DBICTest;
 
 my $schema = DBICTest->init_schema();
 
-eval { require DateTime };
-plan skip_all => "Need DateTime for inflation tests" if $@;
+plan skip_all => 'Inflation tests need ' . DBIx::Class::Optional::Dependencies->req_missing_for ('test_dt')
+  unless DBIx::Class::Optional::Dependencies->req_ok_for ('test_dt');
 
 $schema->class('CD') ->inflate_column( 'year',
     { inflate => sub { DateTime->new( year => shift ) },
@@ -27,8 +27,10 @@ is( $cd->year->year, 1997, 'inflated year ok' );
 
 is( $cd->year->month, 1, 'inflated month ok' );
 
-eval { $cd->year(\'year +1'); };
-ok(!$@, 'updated year using a scalarref');
+lives_ok (
+  sub { $cd->year(\'year +1') },
+  'updated year using a scalarref'
+);
 $cd->update();
 $cd->discard_changes();
 
@@ -51,8 +53,10 @@ $cd = $rs->find(3);
 is( $cd->year->year, $now->year, 'deflate ok' );
 
 # set_inflated_column test
-eval { $cd->set_inflated_column('year', $now) };
-ok(!$@, 'set_inflated_column with DateTime object');
+lives_ok (
+  sub { $cd->set_inflated_column('year', $now) },
+  'set_inflated_column with DateTime object'
+);
 $cd->update;
 
 $cd = $rs->find(3);
@@ -60,8 +64,10 @@ is( $cd->year->year, $now->year, 'deflate ok' );
 
 $cd = $rs->find(3);
 my $before_year = $cd->year->year;
-eval { $cd->set_inflated_column('year', \'year + 1') };
-ok(!$@, 'set_inflated_column to "year + 1"');
+lives_ok (
+  sub { $cd->set_inflated_column('year', \'year + 1') },
+  'set_inflated_column to "year + 1"',
+);
 $cd->update;
 
 $cd->store_inflated_column('year', \'year + 1');
@@ -72,22 +78,28 @@ is( $cd->year->year, $before_year+1, 'deflate ok' );
 
 # store_inflated_column test
 $cd = $rs->find(3);
-eval { $cd->store_inflated_column('year', $now) };
-ok(!$@, 'store_inflated_column with DateTime object');
+lives_ok (
+  sub { $cd->store_inflated_column('year', $now) },
+  'store_inflated_column with DateTime object'
+);
 $cd->update;
 
 is( $cd->year->year, $now->year, 'deflate ok' );
 
 # update tests
 $cd = $rs->find(3);
-eval { $cd->update({'year' => $now}) };
-ok(!$@, 'update using DateTime object ok');
+lives_ok (
+  sub { $cd->update({'year' => $now}) },
+  'update using DateTime object ok'
+);
 is($cd->year->year, $now->year, 'deflate ok');
 
 $cd = $rs->find(3);
 $before_year = $cd->year->year;
-eval { $cd->update({'year' => \'year + 1'}) };
-ok(!$@, 'update using scalarref ok');
+lives_ok (
+  sub { $cd->update({'year' => \'year + 1'}) },
+  'update using scalarref ok'
+);
 
 $cd = $rs->find(3);
 is($cd->year->year, $before_year + 1, 'deflate ok');
index ae8fc3b..2f4f740 100644 (file)
@@ -7,11 +7,8 @@ use DBICTest;
 
 my $schema = DBICTest->init_schema();
 
-eval { require DateTime::Format::SQLite };
-plan $@
-  ? ( skip_all => "Need DateTime::Format::SQLite for DT inflation tests" )
-  : ( tests => 18 )
-;
+plan skip_all => 'DT inflation tests need ' . DBIx::Class::Optional::Dependencies->req_missing_for ('test_dt')
+  unless DBIx::Class::Optional::Dependencies->req_ok_for ('test_dt');
 
 # inflation test
 my $event = $schema->resultset("Event")->find(1);
@@ -74,3 +71,5 @@ is("$varchar_datetime", '2006-05-22T19:05:07', 'Correct date/time');
 ## skip inflation field
 my $skip_inflation = $event->skip_inflation;
 is ("$skip_inflation", '2006-04-21 18:04:06', 'Correct date/time');
+
+done_testing;
index 380242d..802c30e 100644 (file)
@@ -1,13 +1,12 @@
 use strict;
-use warnings;  
+use warnings;
 
 use Test::More;
 use lib qw(t/lib);
 use DBICTest;
 
-eval { require DateTime::Format::SQLite };
-plan $@ ? ( skip_all => 'Requires DateTime::Format::SQLite' )
-        : ( tests => 3 );
+plan skip_all => 'Test needs ' . DBIx::Class::Optional::Dependencies->req_missing_for ('test_dt_sqlite')
+  unless DBIx::Class::Optional::Dependencies->req_ok_for ('test_dt_sqlite');
 
 my $schema = DBICTest->init_schema(
     no_deploy => 1, # Deploying would cause an early rebless
@@ -26,3 +25,4 @@ my $parser = $schema->storage->datetime_parser();
 is($parser, 'DateTime::Format::SQLite', 'Got expected storage-set datetime_parser');
 isa_ok($schema->storage, 'DBIx::Class::Storage::DBI::SQLite', 'storage');
 
+done_testing;
index 6d52d06..572fc4e 100644 (file)
@@ -1,5 +1,5 @@
 use strict;
-use warnings;  
+use warnings;
 
 use Test::More;
 use Test::Exception;
@@ -16,13 +16,11 @@ Set $ENV{DBICTEST_FIREBIRD_DSN} and/or $ENV{DBICTEST_FIREBIRD_ODBC_DSN}
 _USER and _PASS to run this test'.
 Warning: This test drops and creates a table called 'event'";
 EOF
-} else {
-  eval "use DateTime; use DateTime::Format::Strptime;";
-  if ($@) {
-    plan skip_all => 'needs DateTime and DateTime::Format::Strptime for testing';
-  }
 }
 
+plan skip_all => 'Test needs ' . DBIx::Class::Optional::Dependencies->req_missing_for ('test_dt')
+  unless DBIx::Class::Optional::Dependencies->req_ok_for ('test_dt');
+
 my @info = (
   [ $dsn,  $user,  $pass  ],
   [ $dsn2, $user2, $pass2 ],
index af23410..da0cb69 100644 (file)
@@ -1,5 +1,5 @@
 use strict;
-use warnings;  
+use warnings;
 
 use Test::More;
 use Test::Exception;
@@ -14,13 +14,11 @@ if (not $dsn) {
 Set $ENV{DBICTEST_INFORMIX_DSN} _USER and _PASS to run this test'.
 Warning: This test drops and creates a table called 'event'";
 EOF
-} else {
-  eval "use DateTime; use DateTime::Format::Strptime;";
-  if ($@) {
-    plan skip_all => 'needs DateTime and DateTime::Format::Strptime for testing';
-  }
 }
 
+plan skip_all => 'Test needs ' . DBIx::Class::Optional::Dependencies->req_missing_for ('test_dt')
+  unless DBIx::Class::Optional::Dependencies->req_ok_for ('test_dt');
+
 my $schema;
 
 {
index 44984a3..e9c003e 100644 (file)
@@ -22,13 +22,11 @@ if (not ($dsn || $dsn2)) {
     'Set $ENV{DBICTEST_MSSQL_ODBC_DSN} and/or $ENV{DBICTEST_MSSQL_DSN} _USER '
     .'and _PASS to run this test' .
     "\nWarning: This test drops and creates a table called 'track'";
-} else {
-  eval "use DateTime; use DateTime::Format::Strptime;";
-  if ($@) {
-    plan skip_all => 'needs DateTime and DateTime::Format::Strptime for testing';
-  }
 }
 
+plan skip_all => 'Test needs ' . DBIx::Class::Optional::Dependencies->req_missing_for ('test_dt')
+  unless DBIx::Class::Optional::Dependencies->req_ok_for ('test_dt');
+
 my @connect_info = (
   [ $dsn,  $user,  $pass ],
   [ $dsn2, $user2, $pass2 ],
index 51368ad..d14ee7d 100644 (file)
@@ -3,22 +3,20 @@ use warnings;
 
 use Test::More;
 use Test::Exception;
+use Test::Warn;
 use lib qw(t/lib);
 use DBICTest;
 use DBICTest::Schema;
 
+plan skip_all => 'Inflation tests need ' . DBIx::Class::Optional::Dependencies->req_missing_for ('test_dt_mysql')
+  unless DBIx::Class::Optional::Dependencies->req_ok_for ('test_dt_mysql');
+
 {
   local $SIG{__WARN__} = sub { warn @_ if $_[0] !~ /extra \=\> .+? has been deprecated/ };
   DBICTest::Schema->load_classes('EventTZ');
   DBICTest::Schema->load_classes('EventTZDeprecated');
 }
 
-eval { require DateTime::Format::MySQL };
-plan $@ 
-  ? ( skip_all => "Need DateTime::Format::MySQL for inflation tests")
-  : ( tests => 33 )
-;
-
 my $schema = DBICTest->init_schema();
 
 # Test "timezone" parameter
@@ -56,20 +54,17 @@ foreach my $tbl (qw/EventTZ EventTZDeprecated/) {
   # Test floating timezone warning
   # We expect one warning
   SKIP: {
-      skip "ENV{DBIC_FLOATING_TZ_OK} was set, skipping", 1 if $ENV{DBIC_FLOATING_TZ_OK};
-      local $SIG{__WARN__} = sub {
-          like(
-              shift,
-              qr/You're using a floating timezone, please see the documentation of DBIx::Class::InflateColumn::DateTime for an explanation/,
-              'Floating timezone warning'
-          );
-      };
-      my $event_tz_floating = $schema->resultset($tbl)->create({
-          starts_at => DateTime->new(year=>2007, month=>12, day=>31, ),
-          created_on => DateTime->new(year=>2006, month=>1, day=>31,
-              hour => 13, minute => 34, second => 56, ),
-      });
-      delete $SIG{__WARN__};
+    skip "ENV{DBIC_FLOATING_TZ_OK} was set, skipping", 1 if $ENV{DBIC_FLOATING_TZ_OK};
+    warnings_exist (
+      sub {
+        $schema->resultset($tbl)->create({
+          starts_at => DateTime->new(year=>2007, month=>12, day=>31 ),
+          created_on => DateTime->new(year=>2006, month=>1, day=>31, hour => 13, minute => 34, second => 56 ),
+        });
+      },
+      qr/You're using a floating timezone, please see the documentation of DBIx::Class::InflateColumn::DateTime for an explanation/,
+      'Floating timezone warning'
+    );
   };
 
   # This should fail to set
@@ -95,3 +90,5 @@ throws_ok (
   qr/invalid date format/i,
   "Invalid date format exception"
 );
+
+done_testing;
index 40fa59a..84533e8 100644 (file)
@@ -1,5 +1,5 @@
 use strict;
-use warnings;  
+use warnings;
 
 use Test::More;
 use lib qw(t/lib);
@@ -11,15 +11,9 @@ if (not ($dsn && $user && $pass)) {
     plan skip_all => 'Set $ENV{DBICTEST_ORA_DSN}, _USER and _PASS to run this test. ' .
          'Warning: This test drops and creates a table called \'track\'';
 }
-else {
-    eval "use DateTime; use DateTime::Format::Oracle;";
-    if ($@) {
-        plan skip_all => 'needs DateTime and DateTime::Format::Oracle for testing';
-    }
-    else {
-        plan tests => 10;
-    }
-}
+
+plan skip_all => 'Test needs ' . DBIx::Class::Optional::Dependencies->req_missing_for ('test_rdbms_oracle')
+  unless DBIx::Class::Optional::Dependencies->req_ok_for ('test_rdbms_oracle');
 
 # DateTime::Format::Oracle needs this set
 $ENV{NLS_DATE_FORMAT} = 'DD-MON-YY';
@@ -94,6 +88,8 @@ is( $track->last_updated_at, $timestamp, 'DateTime round-trip as TIMESTAMP' );
 is( int $track->last_updated_at->nanosecond, int 500_000_000,
   'TIMESTAMP nanoseconds survived' );
 
+done_testing;
+
 # clean up our mess
 END {
     if($schema && ($dbh = $schema->storage->dbh)) {
index 2b19df4..d39496f 100644 (file)
@@ -5,18 +5,14 @@ use Test::More;
 use lib qw(t/lib);
 use DBICTest;
 
+plan skip_all => 'Test needs ' . DBIx::Class::Optional::Dependencies->req_missing_for ('test_dt_pg')
+  unless DBIx::Class::Optional::Dependencies->req_ok_for ('test_dt_pg');
+
 {
   local $SIG{__WARN__} = sub { warn @_ if $_[0] !~ /extra \=\> .+? has been deprecated/ };
   DBICTest::Schema->load_classes('EventTZPg');
 }
 
-eval { require DateTime::Format::Pg };
-plan $@
-  ? ( skip_all =>  'Need DateTime::Format::Pg for timestamp inflation tests')
-  : ( tests => 6 )
-;
-
-
 my $schema = DBICTest->init_schema();
 
 {
@@ -38,3 +34,5 @@ my $schema = DBICTest->init_schema();
   is($event->ts_without_tz->microsecond, $dt->microsecond,
     'timestamp without time zone microseconds survived');
 }
+
+done_testing;
index f1ff6fc..ab64136 100644 (file)
@@ -1,5 +1,5 @@
 use strict;
-use warnings;  
+use warnings;
 
 use Test::More;
 use Test::Exception;
@@ -12,13 +12,11 @@ if (not ($dsn && $user)) {
   plan skip_all =>
     'Set $ENV{DBICTEST_SYBASE_DSN}, _USER and _PASS to run this test' .
     "\nWarning: This test drops and creates a table called 'track'";
-} else {
-  eval "use DateTime; use DateTime::Format::Sybase;";
-  if ($@) {
-    plan skip_all => 'needs DateTime and DateTime::Format::Sybase for testing';
-  }
 }
 
+plan skip_all => 'Test needs ' . DBIx::Class::Optional::Dependencies->req_missing_for ('test_rdbms_ase')
+  unless DBIx::Class::Optional::Dependencies->req_ok_for ('test_rdbms_ase');
+
 my @storage_types = (
   'DBI::Sybase::ASE',
   'DBI::Sybase::ASE::NoBindVars',
@@ -46,7 +44,7 @@ for my $storage_type (@storage_types) {
 # minute precision
     ['SMALLDATETIME', 'small_dt', '2004-08-21T14:36:00.000Z'],
   );
-  
+
   for my $dt_type (@dt_types) {
     my ($type, $col, $sample_dt) = @$dt_type;
 
index 88049be..c05f229 100644 (file)
@@ -16,13 +16,11 @@ Set $ENV{DBICTEST_SYBASE_ASA_DSN} and/or $ENV{DBICTEST_SYBASE_ASA_ODBC_DSN}
 _USER and _PASS to run this test'.
 Warning: This test drops and creates a table called 'track'";
 EOF
-} else {
-  eval "use DateTime; use DateTime::Format::Strptime;";
-  if ($@) {
-    plan skip_all => 'needs DateTime and DateTime::Format::Strptime for testing';
-  }
 }
 
+plan skip_all => 'Test needs ' . DBIx::Class::Optional::Dependencies->req_missing_for ('test_dt')
+  unless DBIx::Class::Optional::Dependencies->req_ok_for ('test_dt');
+
 my @info = (
   [ $dsn,  $user,  $pass  ],
   [ $dsn2, $user2, $pass2 ],
index 49cf695..87fb7ce 100644 (file)
@@ -1,5 +1,5 @@
 use strict;
-use warnings;  
+use warnings;
 
 use Test::More;
 use lib qw(t/lib);
index 171779d..0d3be3c 100644 (file)
@@ -43,8 +43,10 @@ is_deeply (
 );
 
 SKIP: {
-  eval { require DateTime };
-  skip "Need DateTime for +select/get_inflated_columns tests", 1 if $@;
+  skip (
+    "+select/get_inflated_columns tests need " . DBIx::Class::Optional::Dependencies->req_missing_for ('test_dt'),
+    1
+  ) unless DBIx::Class::Optional::Dependencies->req_ok_for ('test_dt');
 
   $schema->class('CD')->inflate_column( 'year',
     { inflate => sub { DateTime->new( year => shift ) },
index 67f8618..67b6c2b 100644 (file)
@@ -1,31 +1,32 @@
 use strict;
 use warnings;
-use lib qw(t/lib);
+
 use Test::More;
+
+BEGIN {
+    require DBIx::Class;
+    plan skip_all => 'Test needs ' . DBIx::Class::Optional::Dependencies->req_missing_for ('test_replicated')
+      unless DBIx::Class::Optional::Dependencies->req_ok_for ('test_replicated');
+}
+
+use Test::Moose;
 use Test::Exception;
-use DBICTest;
 use List::Util 'first';
 use Scalar::Util 'reftype';
 use File::Spec;
 use IO::Handle;
+use Moose();
+use MooseX::Types();
+note "Using Moose version $Moose::VERSION and MooseX::Types version $MooseX::Types::VERSION";
 
-BEGIN {
-    eval { require Test::Moose; Test::Moose->import() };
-    plan skip_all => "Need Test::Moose to run this test" if $@;
-      require DBIx::Class;
-
-    plan skip_all => 'Test needs ' . DBIx::Class::Optional::Dependencies->req_missing_for ('replicated')
-      unless DBIx::Class::Optional::Dependencies->req_ok_for ('replicated');
-}
+use lib qw(t/lib);
+use DBICTest;
 
 use_ok 'DBIx::Class::Storage::DBI::Replicated::Pool';
 use_ok 'DBIx::Class::Storage::DBI::Replicated::Balancer';
 use_ok 'DBIx::Class::Storage::DBI::Replicated::Replicant';
 use_ok 'DBIx::Class::Storage::DBI::Replicated';
 
-use Moose();
-use MooseX::Types();
-note "Using Moose version $Moose::VERSION and MooseX::Types version $MooseX::Types::VERSION";
 
 =head1 HOW TO USE