add SQLT dep if DBICTEST_SQLT_DEPLOY env is set
Rafael Kitover [Sun, 11 Mar 2012 20:56:53 +0000 (16:56 -0400)]
Add some code to Makefile.PL to check for $ENV{DBICTEST_SQLT_DEPLOY},
which if set requires SQL::Translator to be available or the tests
will fail. Add the dep as a test_requires directly, so that it is
scrubbed out of the META.yml in author mode due to not being in the
$test_requires hash.

Makefile.PL

index f2fff8b..78e5bdf 100644 (file)
@@ -166,6 +166,18 @@ nonauthor_stop_distdir_creation:
 \t\$(NOECHO) \$(ECHO) Creation of dists in non-author mode is not allowed
 \t\$(NOECHO) \$(FALSE)
 EOP
+
+  # if the user has this env var set and no SQLT installed, tests will fail
+  # same rationale for direct test_requires as the strictures stuff above
+  # (even though no dist will be created from this)
+  if ($ENV{DBICTEST_SQLT_DEPLOY}) {
+    local @INC = ('lib', @INC);
+    require DBIx::Class::Optional::Dependencies;
+    my $dep_req = DBIx::Class::Optional::Dependencies->req_list_for('deploy');
+    for (keys %$dep_req) {
+      test_requires ($_ => $dep_req->{$_})
+    }
+  }
 }
 
 # compose final req list, for alphabetical ordering