[Bast-commits] r9574 - in DBIx-Class/0.08/trunk: . t xt

ribasushi at dev.catalyst.perl.org ribasushi at dev.catalyst.perl.org
Thu Jun 3 10:31:45 GMT 2010


Author: ribasushi
Date: 2010-06-03 11:31:45 +0100 (Thu, 03 Jun 2010)
New Revision: 9574

Added:
   DBIx-Class/0.08/trunk/xt/
   DBIx-Class/0.08/trunk/xt/eol.t
   DBIx-Class/0.08/trunk/xt/notabs.t
   DBIx-Class/0.08/trunk/xt/optional_deps.t
   DBIx-Class/0.08/trunk/xt/pod.t
   DBIx-Class/0.08/trunk/xt/podcoverage.t
Removed:
   DBIx-Class/0.08/trunk/t/02pod.t
   DBIx-Class/0.08/trunk/t/03podcoverage.t
   DBIx-Class/0.08/trunk/t/06notabs.t
   DBIx-Class/0.08/trunk/t/07eol.t
   DBIx-Class/0.08/trunk/t/10optional_deps.t
Modified:
   DBIx-Class/0.08/trunk/MANIFEST.SKIP
   DBIx-Class/0.08/trunk/Makefile.PL
Log:
enter xt/ (RT#56698)

Modified: DBIx-Class/0.08/trunk/MANIFEST.SKIP
===================================================================
--- DBIx-Class/0.08/trunk/MANIFEST.SKIP	2010-06-03 10:26:00 UTC (rev 9573)
+++ DBIx-Class/0.08/trunk/MANIFEST.SKIP	2010-06-03 10:31:45 UTC (rev 9574)
@@ -1,4 +1,4 @@
-^(?!script/|examples/|lib/|inc/|t/|Makefile.PL$|README$|MANIFEST$|Changes$|META.yml$)
+^(?!script/|examples/|lib/|inc/|t/|xt/|Makefile.PL$|README$|MANIFEST$|Changes$|META.yml$)
 
 
 # Avoid version control files.

Modified: DBIx-Class/0.08/trunk/Makefile.PL
===================================================================
--- DBIx-Class/0.08/trunk/Makefile.PL	2010-06-03 10:26:00 UTC (rev 9573)
+++ DBIx-Class/0.08/trunk/Makefile.PL	2010-06-03 10:31:45 UTC (rev 9574)
@@ -1,4 +1,4 @@
-use inc::Module::Install 0.93;
+use inc::Module::Install 0.97;
 use strict;
 use warnings;
 use POSIX ();
@@ -135,9 +135,9 @@
 }
 
 # output twice since the deplist is > 70 lines
-warn $optdep_msg;
+warn $optdep_msg if $Module::Install::AUTHOR;
 auto_install();
-warn $optdep_msg;
+warn $optdep_msg if $Module::Install::AUTHOR;
 
 # re-create various autogenerated documentation bits
 if ($Module::Install::AUTHOR) {
@@ -159,10 +159,16 @@
   #  PodInherit();
 }
 
+
 tests_recursive (qw|
     t
 |);
 
+# temporary(?) until I get around to fix M::I wrt xt/
+# needs Module::Install::AuthorTests
+recursive_author_tests (qw/xt/);
+
+
 install_script (qw|
     script/dbicadmin
 |);
@@ -190,8 +196,7 @@
 
 EOP
 
-
-
+homepage 'http://www.dbix-class.org/';
 resources 'IRC'         => 'irc://irc.perl.org/#dbix-class';
 resources 'license'     => 'http://dev.perl.org/licenses/';
 resources 'repository'  => 'git://git.shadowcat.co.uk/dbsrgits/DBIx-Class.git';

Deleted: DBIx-Class/0.08/trunk/t/02pod.t
===================================================================
--- DBIx-Class/0.08/trunk/t/02pod.t	2010-06-03 10:26:00 UTC (rev 9573)
+++ DBIx-Class/0.08/trunk/t/02pod.t	2010-06-03 10:31:45 UTC (rev 9574)
@@ -1,21 +0,0 @@
-use warnings;
-use strict;
-
-use Test::More;
-use lib qw(t/lib);
-use DBICTest;
-
-# Don't run tests for installs
-unless ( DBICTest::AuthorCheck->is_author || $ENV{AUTOMATED_TESTING} || $ENV{RELEASE_TESTING} ) {
-  plan( skip_all => "Author tests not required for installation" );
-}
-
-require DBIx::Class;
-unless ( DBIx::Class::Optional::Dependencies->req_ok_for ('test_pod') ) {
-  my $missing = DBIx::Class::Optional::Dependencies->req_missing_for ('test_pod');
-  $ENV{RELEASE_TESTING} || DBICTest::AuthorCheck->is_author
-    ? die ("Failed to load release-testing module requirements: $missing")
-    : plan skip_all => "Test needs: $missing"
-}
-
-Test::Pod::all_pod_files_ok();

Deleted: DBIx-Class/0.08/trunk/t/03podcoverage.t
===================================================================
--- DBIx-Class/0.08/trunk/t/03podcoverage.t	2010-06-03 10:26:00 UTC (rev 9573)
+++ DBIx-Class/0.08/trunk/t/03podcoverage.t	2010-06-03 10:31:45 UTC (rev 9574)
@@ -1,164 +0,0 @@
-use warnings;
-use strict;
-
-use Test::More;
-use List::Util 'first';
-use lib qw(t/lib);
-use DBICTest;
-use namespace::clean;
-
-# Don't run tests for installs
-unless ( DBICTest::AuthorCheck->is_author || $ENV{AUTOMATED_TESTING} || $ENV{RELEASE_TESTING} ) {
-  plan( skip_all => "Author tests not required for installation" );
-}
-
-require DBIx::Class;
-unless ( DBIx::Class::Optional::Dependencies->req_ok_for ('test_podcoverage') ) {
-  my $missing = DBIx::Class::Optional::Dependencies->req_missing_for ('test_podcoverage');
-  $ENV{RELEASE_TESTING} || DBICTest::AuthorCheck->is_author
-    ? die ("Failed to load release-testing module requirements: $missing")
-    : plan skip_all => "Test needs: $missing"
-}
-
-# Since this is about checking documentation, a little documentation
-# of what this is doing might be in order.
-# The exceptions structure below is a hash keyed by the module
-# name. Any * in a name is treated like a wildcard and will behave
-# as expected. Modules are matched by longest string first, so
-# A::B::C will match even if there is A::B*
-
-# The value for each is a hash, which contains one or more
-# (although currently more than one makes no sense) of the following
-# things:-
-#   skip   => a true value means this module is not checked
-#   ignore => array ref containing list of methods which
-#             do not need to be documented.
-my $exceptions = {
-    'DBIx::Class' => {
-        ignore => [qw/
-            MODIFY_CODE_ATTRIBUTES
-            component_base_class
-            mk_classdata
-            mk_classaccessor
-        /]
-    },
-    'DBIx::Class::Row' => {
-        ignore => [qw/
-            MULTICREATE_DEBUG
-        /],
-    },
-    'DBIx::Class::FilterColumn' => {
-        ignore => [qw/
-            new
-            update
-            store_column
-            get_column
-            get_columns
-        /],
-    },
-    'DBIx::Class::ResultSource' => {
-        ignore => [qw/
-            compare_relationship_keys
-            pk_depends_on
-            resolve_condition
-            resolve_join
-            resolve_prefetch
-        /],
-    },
-    'DBIx::Class::ResultSourceHandle' => {
-        ignore => [qw/
-            schema
-            source_moniker
-        /],
-    },
-    'DBIx::Class::Storage' => {
-        ignore => [qw/
-            schema
-            cursor
-        /]
-    },
-    'DBIx::Class::Schema' => {
-        ignore => [qw/
-            setup_connection_class
-        /]
-    },
-
-    'DBIx::Class::Schema::Versioned' => {
-        ignore => [ qw/
-            connection
-        /]
-    },
-
-    'DBIx::Class::Admin'        => {
-        ignore => [ qw/
-            BUILD
-        /]
-     },
-
-    'DBIx::Class::Storage::DBI::Replicated*'        => {
-        ignore => [ qw/
-            connect_call_do_sql
-            disconnect_call_do_sql
-        /]
-    },
-
-    'DBIx::Class::Admin::*'                         => { skip => 1 },
-    'DBIx::Class::ClassResolver::PassThrough'       => { skip => 1 },
-    'DBIx::Class::Componentised'                    => { skip => 1 },
-    'DBIx::Class::Relationship::*'                  => { skip => 1 },
-    'DBIx::Class::ResultSetProxy'                   => { skip => 1 },
-    'DBIx::Class::ResultSourceProxy'                => { skip => 1 },
-    'DBIx::Class::Storage::Statistics'              => { skip => 1 },
-    'DBIx::Class::Storage::DBI::Replicated::Types'  => { skip => 1 },
-
-# test some specific components whose parents are exempt below
-    'DBIx::Class::Relationship::Base'               => {},
-
-# internals
-    'DBIx::Class::SQLAHacks*'                       => { skip => 1 },
-    'DBIx::Class::Storage::DBI*'                    => { skip => 1 },
-    'SQL::Translator::*'                            => { skip => 1 },
-
-# deprecated / backcompat stuff
-    'DBIx::Class::CDBICompat*'                      => { skip => 1 },
-    'DBIx::Class::ResultSetManager'                 => { skip => 1 },
-    'DBIx::Class::DB'                               => { skip => 1 },
-
-# skipped because the synopsis covers it clearly
-    'DBIx::Class::InflateColumn::File'              => { skip => 1 },
-};
-
-my $ex_lookup = {};
-for my $string (keys %$exceptions) {
-  my $ex = $exceptions->{$string};
-  $string =~ s/\*/'.*?'/ge;
-  my $re = qr/^$string$/;
-  $ex_lookup->{$re} = $ex;
-}
-
-my @modules = sort { $a cmp $b } (Test::Pod::Coverage::all_modules());
-
-foreach my $module (@modules) {
-  SKIP: {
-
-    my ($match) =
-      first { $module =~ $_ }
-      (sort { length $b <=> length $a || $b cmp $a } (keys %$ex_lookup) )
-    ;
-
-    my $ex = $ex_lookup->{$match} if $match;
-
-    skip ("$module exempt", 1) if ($ex->{skip});
-
-    # build parms up from ignore list
-    my $parms = {};
-    $parms->{trustme} =
-      [ map { qr/^$_$/ } @{ $ex->{ignore} } ]
-        if exists($ex->{ignore});
-
-    # run the test with the potentially modified parm set
-    Test::Pod::Coverage::pod_coverage_ok($module, $parms, "$module POD coverage");
-  }
-}
-
-done_testing;

Deleted: DBIx-Class/0.08/trunk/t/06notabs.t
===================================================================
--- DBIx-Class/0.08/trunk/t/06notabs.t	2010-06-03 10:26:00 UTC (rev 9573)
+++ DBIx-Class/0.08/trunk/t/06notabs.t	2010-06-03 10:31:45 UTC (rev 9574)
@@ -1,24 +0,0 @@
-use warnings;
-use strict;
-
-use Test::More;
-use lib 't/lib';
-use DBICTest;
-
-# Don't run tests for installs
-unless ( DBICTest::AuthorCheck->is_author || $ENV{AUTOMATED_TESTING} || $ENV{RELEASE_TESTING} ) {
-  plan( skip_all => "Author tests not required for installation" );
-}
-
-require DBIx::Class;
-unless ( DBIx::Class::Optional::Dependencies->req_ok_for ('test_notabs') ) {
-  my $missing = DBIx::Class::Optional::Dependencies->req_missing_for ('test_notabs');
-  $ENV{RELEASE_TESTING} || DBICTest::AuthorCheck->is_author
-    ? die ("Failed to load release-testing module requirements: $missing")
-    : plan skip_all => "Test needs: $missing"
-}
-
-Test::NoTabs::all_perl_files_ok(qw/t lib script maint/);
-
-# FIXME - need to fix Test::NoTabs
-#done_testing;

Deleted: DBIx-Class/0.08/trunk/t/07eol.t
===================================================================
--- DBIx-Class/0.08/trunk/t/07eol.t	2010-06-03 10:26:00 UTC (rev 9573)
+++ DBIx-Class/0.08/trunk/t/07eol.t	2010-06-03 10:31:45 UTC (rev 9574)
@@ -1,29 +0,0 @@
-use warnings;
-use strict;
-
-use Test::More;
-use lib 't/lib';
-use DBICTest;
-
-# Don't run tests for installs
-unless ( DBICTest::AuthorCheck->is_author || $ENV{AUTOMATED_TESTING} || $ENV{RELEASE_TESTING} ) {
-  plan( skip_all => "Author tests not required for installation" );
-}
-
-plan skip_all => 'Test::EOL very broken';
-
-require DBIx::Class;
-unless ( DBIx::Class::Optional::Dependencies->req_ok_for ('test_eol') ) {
-  my $missing = DBIx::Class::Optional::Dependencies->req_missing_for ('test_eol');
-  $ENV{RELEASE_TESTING} || DBICTest::AuthorCheck->is_author
-    ? die ("Failed to load release-testing module requirements: $missing")
-    : plan skip_all => "Test needs: $missing"
-}
-
-TODO: {
-  local $TODO = 'Do not fix those yet - we have way too many branches out there, merging will be hell';
-  Test::EOL::all_perl_files_ok({ trailing_whitespace => 1}, qw/t lib script maint/);
-}
-
-# FIXME - need to fix Test::EOL
-#done_testing;

Deleted: DBIx-Class/0.08/trunk/t/10optional_deps.t
===================================================================
--- DBIx-Class/0.08/trunk/t/10optional_deps.t	2010-06-03 10:26:00 UTC (rev 9573)
+++ DBIx-Class/0.08/trunk/t/10optional_deps.t	2010-06-03 10:31:45 UTC (rev 9574)
@@ -1,70 +0,0 @@
-use strict;
-use warnings;
-no warnings qw/once/;
-
-use Test::More;
-use lib qw(t/lib);
-use Scalar::Util; # load before we break require()
-
-use_ok 'DBIx::Class::Optional::Dependencies';
-
-my $sqlt_dep = DBIx::Class::Optional::Dependencies->req_list_for ('deploy');
-is_deeply (
-  [ keys %$sqlt_dep ],
-  [ 'SQL::Translator' ],
-  'Correct deploy() dependency list',
-);
-
-# make module loading impossible, regardless of actual libpath contents
- at INC = (sub { die('Optional Dep Test') } );
-
-ok (
-  ! DBIx::Class::Optional::Dependencies->req_ok_for ('deploy'),
-  'deploy() deps missing',
-);
-
-like (
-  DBIx::Class::Optional::Dependencies->req_missing_for ('deploy'),
-  qr/^SQL::Translator \>\= \d/,
-  'expected missing string contents',
-);
-
-like (
-  DBIx::Class::Optional::Dependencies->req_errorlist_for ('deploy')->{'SQL::Translator'},
-  qr/Optional Dep Test/,
-  'custom exception found in errorlist',
-);
-
-
-#make it so module appears loaded
-$INC{'SQL/Translator.pm'} = 1;
-$SQL::Translator::VERSION = 999;
-
-ok (
-  ! DBIx::Class::Optional::Dependencies->req_ok_for ('deploy'),
-  'deploy() deps missing cached properly',
-);
-
-#reset cache
-%DBIx::Class::Optional::Dependencies::req_availability_cache = ();
-
-
-ok (
-  DBIx::Class::Optional::Dependencies->req_ok_for ('deploy'),
-  'deploy() deps present',
-);
-
-is (
-  DBIx::Class::Optional::Dependencies->req_missing_for ('deploy'),
-  '',
-  'expected null missing string',
-);
-
-is_deeply (
-  DBIx::Class::Optional::Dependencies->req_errorlist_for ('deploy'),
-  {},
-  'expected empty errorlist',
-);
-
-
-done_testing;

Copied: DBIx-Class/0.08/trunk/xt/eol.t (from rev 8925, DBIx-Class/0.08/trunk/t/07eol.t)
===================================================================
--- DBIx-Class/0.08/trunk/xt/eol.t	                        (rev 0)
+++ DBIx-Class/0.08/trunk/xt/eol.t	2010-06-03 10:31:45 UTC (rev 9574)
@@ -0,0 +1,32 @@
+use warnings;
+use strict;
+
+use Test::More;
+use lib 't/lib';
+use DBICTest;
+
+# Don't run tests for installs
+unless ( DBICTest::AuthorCheck->is_author || $ENV{AUTOMATED_TESTING} || $ENV{RELEASE_TESTING} ) {
+  plan( skip_all => "Author tests not required for installation" );
+}
+
+plan skip_all => 'Test::EOL very broken';
+
+require DBIx::Class;
+unless ( DBIx::Class::Optional::Dependencies->req_ok_for ('test_eol') ) {
+  my $missing = DBIx::Class::Optional::Dependencies->req_missing_for ('test_eol');
+  $ENV{RELEASE_TESTING} || DBICTest::AuthorCheck->is_author
+    ? die ("Failed to load release-testing module requirements: $missing")
+    : plan skip_all => "Test needs: $missing"
+}
+
+TODO: {
+  local $TODO = 'Do not fix those yet - we have way too many branches out there, merging will be hell';
+  Test::EOL::all_perl_files_ok({ trailing_whitespace => 1},
+    qw/t xt lib script/,
+    DBICTest::AuthorCheck->is_author ? ('maint') : (),
+  );
+}
+
+# FIXME - need to fix Test::EOL
+#done_testing;

Copied: DBIx-Class/0.08/trunk/xt/notabs.t (from rev 8925, DBIx-Class/0.08/trunk/t/06notabs.t)
===================================================================
--- DBIx-Class/0.08/trunk/xt/notabs.t	                        (rev 0)
+++ DBIx-Class/0.08/trunk/xt/notabs.t	2010-06-03 10:31:45 UTC (rev 9574)
@@ -0,0 +1,27 @@
+use warnings;
+use strict;
+
+use Test::More;
+use lib 't/lib';
+use DBICTest;
+
+# Don't run tests for installs
+unless ( DBICTest::AuthorCheck->is_author || $ENV{AUTOMATED_TESTING} || $ENV{RELEASE_TESTING} ) {
+  plan( skip_all => "Author tests not required for installation" );
+}
+
+require DBIx::Class;
+unless ( DBIx::Class::Optional::Dependencies->req_ok_for ('test_notabs') ) {
+  my $missing = DBIx::Class::Optional::Dependencies->req_missing_for ('test_notabs');
+  $ENV{RELEASE_TESTING} || DBICTest::AuthorCheck->is_author
+    ? die ("Failed to load release-testing module requirements: $missing")
+    : plan skip_all => "Test needs: $missing"
+}
+
+Test::NoTabs::all_perl_files_ok(
+  qw/t xt lib script/,
+  DBICTest::AuthorCheck->is_author ? ('maint') : (),
+);
+
+# FIXME - need to fix Test::NoTabs - doesn't work with done_testing
+#done_testing;

Copied: DBIx-Class/0.08/trunk/xt/optional_deps.t (from rev 8694, DBIx-Class/0.08/trunk/t/10optional_deps.t)
===================================================================
--- DBIx-Class/0.08/trunk/xt/optional_deps.t	                        (rev 0)
+++ DBIx-Class/0.08/trunk/xt/optional_deps.t	2010-06-03 10:31:45 UTC (rev 9574)
@@ -0,0 +1,70 @@
+use strict;
+use warnings;
+no warnings qw/once/;
+
+use Test::More;
+use lib qw(t/lib);
+use Scalar::Util; # load before we break require()
+
+use_ok 'DBIx::Class::Optional::Dependencies';
+
+my $sqlt_dep = DBIx::Class::Optional::Dependencies->req_list_for ('deploy');
+is_deeply (
+  [ keys %$sqlt_dep ],
+  [ 'SQL::Translator' ],
+  'Correct deploy() dependency list',
+);
+
+# make module loading impossible, regardless of actual libpath contents
+ at INC = (sub { die('Optional Dep Test') } );
+
+ok (
+  ! DBIx::Class::Optional::Dependencies->req_ok_for ('deploy'),
+  'deploy() deps missing',
+);
+
+like (
+  DBIx::Class::Optional::Dependencies->req_missing_for ('deploy'),
+  qr/^SQL::Translator \>\= \d/,
+  'expected missing string contents',
+);
+
+like (
+  DBIx::Class::Optional::Dependencies->req_errorlist_for ('deploy')->{'SQL::Translator'},
+  qr/Optional Dep Test/,
+  'custom exception found in errorlist',
+);
+
+
+#make it so module appears loaded
+$INC{'SQL/Translator.pm'} = 1;
+$SQL::Translator::VERSION = 999;
+
+ok (
+  ! DBIx::Class::Optional::Dependencies->req_ok_for ('deploy'),
+  'deploy() deps missing cached properly',
+);
+
+#reset cache
+%DBIx::Class::Optional::Dependencies::req_availability_cache = ();
+
+
+ok (
+  DBIx::Class::Optional::Dependencies->req_ok_for ('deploy'),
+  'deploy() deps present',
+);
+
+is (
+  DBIx::Class::Optional::Dependencies->req_missing_for ('deploy'),
+  '',
+  'expected null missing string',
+);
+
+is_deeply (
+  DBIx::Class::Optional::Dependencies->req_errorlist_for ('deploy'),
+  {},
+  'expected empty errorlist',
+);
+
+
+done_testing;

Copied: DBIx-Class/0.08/trunk/xt/pod.t (from rev 8761, DBIx-Class/0.08/trunk/t/02pod.t)
===================================================================
--- DBIx-Class/0.08/trunk/xt/pod.t	                        (rev 0)
+++ DBIx-Class/0.08/trunk/xt/pod.t	2010-06-03 10:31:45 UTC (rev 9574)
@@ -0,0 +1,21 @@
+use warnings;
+use strict;
+
+use Test::More;
+use lib qw(t/lib);
+use DBICTest;
+
+# Don't run tests for installs
+unless ( DBICTest::AuthorCheck->is_author || $ENV{AUTOMATED_TESTING} || $ENV{RELEASE_TESTING} ) {
+  plan( skip_all => "Author tests not required for installation" );
+}
+
+require DBIx::Class;
+unless ( DBIx::Class::Optional::Dependencies->req_ok_for ('test_pod') ) {
+  my $missing = DBIx::Class::Optional::Dependencies->req_missing_for ('test_pod');
+  $ENV{RELEASE_TESTING} || DBICTest::AuthorCheck->is_author
+    ? die ("Failed to load release-testing module requirements: $missing")
+    : plan skip_all => "Test needs: $missing"
+}
+
+Test::Pod::all_pod_files_ok();

Copied: DBIx-Class/0.08/trunk/xt/podcoverage.t (from rev 9521, DBIx-Class/0.08/trunk/t/03podcoverage.t)
===================================================================
--- DBIx-Class/0.08/trunk/xt/podcoverage.t	                        (rev 0)
+++ DBIx-Class/0.08/trunk/xt/podcoverage.t	2010-06-03 10:31:45 UTC (rev 9574)
@@ -0,0 +1,164 @@
+use warnings;
+use strict;
+
+use Test::More;
+use List::Util 'first';
+use lib qw(t/lib);
+use DBICTest;
+use namespace::clean;
+
+# Don't run tests for installs
+unless ( DBICTest::AuthorCheck->is_author || $ENV{AUTOMATED_TESTING} || $ENV{RELEASE_TESTING} ) {
+  plan( skip_all => "Author tests not required for installation" );
+}
+
+require DBIx::Class;
+unless ( DBIx::Class::Optional::Dependencies->req_ok_for ('test_podcoverage') ) {
+  my $missing = DBIx::Class::Optional::Dependencies->req_missing_for ('test_podcoverage');
+  $ENV{RELEASE_TESTING} || DBICTest::AuthorCheck->is_author
+    ? die ("Failed to load release-testing module requirements: $missing")
+    : plan skip_all => "Test needs: $missing"
+}
+
+# Since this is about checking documentation, a little documentation
+# of what this is doing might be in order.
+# The exceptions structure below is a hash keyed by the module
+# name. Any * in a name is treated like a wildcard and will behave
+# as expected. Modules are matched by longest string first, so
+# A::B::C will match even if there is A::B*
+
+# The value for each is a hash, which contains one or more
+# (although currently more than one makes no sense) of the following
+# things:-
+#   skip   => a true value means this module is not checked
+#   ignore => array ref containing list of methods which
+#             do not need to be documented.
+my $exceptions = {
+    'DBIx::Class' => {
+        ignore => [qw/
+            MODIFY_CODE_ATTRIBUTES
+            component_base_class
+            mk_classdata
+            mk_classaccessor
+        /]
+    },
+    'DBIx::Class::Row' => {
+        ignore => [qw/
+            MULTICREATE_DEBUG
+        /],
+    },
+    'DBIx::Class::FilterColumn' => {
+        ignore => [qw/
+            new
+            update
+            store_column
+            get_column
+            get_columns
+        /],
+    },
+    'DBIx::Class::ResultSource' => {
+        ignore => [qw/
+            compare_relationship_keys
+            pk_depends_on
+            resolve_condition
+            resolve_join
+            resolve_prefetch
+        /],
+    },
+    'DBIx::Class::ResultSourceHandle' => {
+        ignore => [qw/
+            schema
+            source_moniker
+        /],
+    },
+    'DBIx::Class::Storage' => {
+        ignore => [qw/
+            schema
+            cursor
+        /]
+    },
+    'DBIx::Class::Schema' => {
+        ignore => [qw/
+            setup_connection_class
+        /]
+    },
+
+    'DBIx::Class::Schema::Versioned' => {
+        ignore => [ qw/
+            connection
+        /]
+    },
+
+    'DBIx::Class::Admin'        => {
+        ignore => [ qw/
+            BUILD
+        /]
+     },
+
+    'DBIx::Class::Storage::DBI::Replicated*'        => {
+        ignore => [ qw/
+            connect_call_do_sql
+            disconnect_call_do_sql
+        /]
+    },
+
+    'DBIx::Class::Admin::*'                         => { skip => 1 },
+    'DBIx::Class::ClassResolver::PassThrough'       => { skip => 1 },
+    'DBIx::Class::Componentised'                    => { skip => 1 },
+    'DBIx::Class::Relationship::*'                  => { skip => 1 },
+    'DBIx::Class::ResultSetProxy'                   => { skip => 1 },
+    'DBIx::Class::ResultSourceProxy'                => { skip => 1 },
+    'DBIx::Class::Storage::Statistics'              => { skip => 1 },
+    'DBIx::Class::Storage::DBI::Replicated::Types'  => { skip => 1 },
+
+# test some specific components whose parents are exempt below
+    'DBIx::Class::Relationship::Base'               => {},
+
+# internals
+    'DBIx::Class::SQLAHacks*'                       => { skip => 1 },
+    'DBIx::Class::Storage::DBI*'                    => { skip => 1 },
+    'SQL::Translator::*'                            => { skip => 1 },
+
+# deprecated / backcompat stuff
+    'DBIx::Class::CDBICompat*'                      => { skip => 1 },
+    'DBIx::Class::ResultSetManager'                 => { skip => 1 },
+    'DBIx::Class::DB'                               => { skip => 1 },
+
+# skipped because the synopsis covers it clearly
+    'DBIx::Class::InflateColumn::File'              => { skip => 1 },
+};
+
+my $ex_lookup = {};
+for my $string (keys %$exceptions) {
+  my $ex = $exceptions->{$string};
+  $string =~ s/\*/'.*?'/ge;
+  my $re = qr/^$string$/;
+  $ex_lookup->{$re} = $ex;
+}
+
+my @modules = sort { $a cmp $b } (Test::Pod::Coverage::all_modules());
+
+foreach my $module (@modules) {
+  SKIP: {
+
+    my ($match) =
+      first { $module =~ $_ }
+      (sort { length $b <=> length $a || $b cmp $a } (keys %$ex_lookup) )
+    ;
+
+    my $ex = $ex_lookup->{$match} if $match;
+
+    skip ("$module exempt", 1) if ($ex->{skip});
+
+    # build parms up from ignore list
+    my $parms = {};
+    $parms->{trustme} =
+      [ map { qr/^$_$/ } @{ $ex->{ignore} } ]
+        if exists($ex->{ignore});
+
+    # run the test with the potentially modified parm set
+    Test::Pod::Coverage::pod_coverage_ok($module, $parms, "$module POD coverage");
+  }
+}
+
+done_testing;




More information about the Bast-commits mailing list