Test suite now is fully parallelizable
Arthur Axel 'fREW' Schmidt [Sat, 21 Jul 2012 07:43:36 +0000 (02:43 -0500)]
13 files changed:
Changes
t/02-instantiation-no-ddl.t
t/02-instantiation-wo-component.t
t/02-instantiation.t
t/03-deprecated.t
t/04-preconnect.t
t/bugs/01-emailed-bug-01.t
t/deploy_methods/coderef-leakage.t
t/deploy_methods/sql_translator.t
t/deploy_methods/sql_translator_deprecated.t
t/deploy_methods/sql_translator_protoschema_transform.t
t/lib/DBICDHTest.pm
t/version_storages/standard.t

diff --git a/Changes b/Changes
index b625657..3f01369 100644 (file)
--- a/Changes
+++ b/Changes
@@ -1,6 +1,7 @@
 Revision history for {{$dist->name}}
 
 {{$NEXT}}
+       - Test suite now is fully parallelizable
 
 0.002115  2012-07-10 13:36:35 America/Chicago
        - Make tests use actual temp files to make certain systems stop failing tests
index b892f2c..7dc3bc2 100644 (file)
@@ -10,14 +10,13 @@ use aliased 'DBIx::Class::DeploymentHandler', 'DH';
 
 use File::Path 'remove_tree';
 use Test::More;
+use File::Temp 'tempdir';
 use Test::Exception;
 use DBI;
 
-DBICDHTest::ready;
-
 my $dbh = DBICDHTest::dbh();
 my @connection = (sub { $dbh }, { ignore_version => 1 });
-my $sql_dir = 't/sql';
+my $sql_dir = tempdir( CLEANUP => 1 );
 
 VERSION1: {
   use_ok 'DBICVersion_v1';
@@ -160,7 +159,7 @@ DOWN2: {
     })
   } 'schema is at version 2';
 
-  is $handler->version_storage->database_version => 2, 
+  is $handler->version_storage->database_version => 2,
     'database version is down to 2';
 
 }
index 0eabb14..f36dbfd 100644 (file)
@@ -10,13 +10,12 @@ use aliased 'DBIx::Class::DeploymentHandler', 'DH';
 
 use File::Path 'remove_tree';
 use Test::More;
+use File::Temp 'tempdir';
 use Test::Exception;
 
-DBICDHTest::ready;
-
 my $dbh = DBICDHTest::dbh();
 my @connection = (sub { $dbh }, { ignore_version => 1 });
-my $sql_dir = 't/sql';
+my $sql_dir = tempdir( CLEANUP => 1 );
 
 VERSION1: {
   use_ok 'DBICVersion_v1';
index 69ad089..7ab3f03 100644 (file)
@@ -10,13 +10,12 @@ use aliased 'DBIx::Class::DeploymentHandler', 'DH';
 
 use File::Path 'remove_tree';
 use Test::More;
+use File::Temp 'tempdir';
 use Test::Exception;
 
-DBICDHTest::ready;
-
 my $dbh = DBICDHTest::dbh();
 my @connection = (sub { $dbh }, { ignore_version => 1 });
-my $sql_dir = 't/sql';
+my $sql_dir = tempdir( CLEANUP => 1 );
 
 VERSION1: {
   use_ok 'DBICVersion_v1';
index 49e1ef5..447aaf1 100644 (file)
@@ -9,13 +9,12 @@ use aliased 'DBIx::Class::DeploymentHandler::Deprecated';
 
 use File::Path 'remove_tree';
 use Test::More;
+use File::Temp 'tempdir';
 use Test::Exception;
 
-DBICDHTest::ready;
-
 my $dbh = DBICDHTest::dbh();
 my @connection = (sub { $dbh }, { ignore_version => 1 });
-my $sql_dir = 't/sql';
+my $sql_dir = tempdir( CLEANUP => 1 );
 
 VERSION1: {
   use_ok 'DBICVersion_v1';
index 9d9cded..962b89f 100644 (file)
@@ -10,13 +10,12 @@ use aliased 'DBIx::Class::DeploymentHandler', 'DH';
 
 use File::Path qw(remove_tree mkpath);
 use Test::More;
+use File::Temp 'tempdir';
 use Test::Exception;
 
-DBICDHTest::ready;
-
 my $db = 'dbi:SQLite::memory:';
 my @connection = ($db, '', '', { ignore_version => 1, on_connect_do => sub { die }});
-my $sql_dir = 't/sql';
+my $sql_dir = tempdir( CLEANUP => 1 );
 
 VERSION1: {
   use_ok 'DBICVersion_v1';
@@ -33,7 +32,7 @@ VERSION1: {
   ok !$s->storage->connected, 'creating handler did not connect';
   ok($handler, 'DBIx::Class::DeploymentHandler w/1 instantiates correctly');
 
-  mkpath('t/sql/SQLite/initialize/1');
+  mkpath("$sql_dir/SQLite/initialize/1");
   $handler->initialize({ version => 1, storage_type => 'SQLite' });
   ok !$s->storage->connected, 'creating schema did not connect';
 }
index dca69b9..191a583 100644 (file)
@@ -10,13 +10,12 @@ use aliased 'DBIx::Class::DeploymentHandler', 'DH';
 
 use File::Path 'remove_tree';
 use Test::More;
+use File::Temp 'tempdir';
 use Test::Exception;
 
-DBICDHTest::ready;
-
 my $dbh = DBICDHTest::dbh();
 my @connection = (sub { $dbh }, { ignore_version => 1 });
-my $sql_dir = 't/sql';
+my $sql_dir = tempdir( CLEANUP => 1 );
 
 use_ok 'DBICVersion_v1';
 my $s = DBICVersion::Schema->connect(@connection);
index 7254ca7..3eb32c2 100644 (file)
@@ -6,20 +6,22 @@ use warnings;
 use Test::More;
 use Test::Exception;
 use aliased 'DBIx::Class::DeploymentHandler::DeployMethod::SQL::Translator';
-use File::Temp;
+use File::Temp 'tempdir';
 
 use lib 't/lib';
 
 use DBICDHTest;
 
 my $dbh = DBICDHTest::dbh();
+my $sql_dir = tempdir( CLEANUP => 1 );
 my @connection = (sub { $dbh }, { ignore_version => 1 });
 
-DBICDHTest::ready;
-
 use_ok 'DBICVersion_v1';
 my $s = DBICVersion::Schema->connect(@connection);
-my $dm = Translator->new({ schema => $s });
+my $dm = Translator->new({
+   schema => $s,
+   script_directory => $sql_dir,
+});
 
 my ($fname1, $fname2) = @_;
 
index 1a81c33..d160ede 100644 (file)
@@ -9,29 +9,27 @@ use Test::Exception;
 use lib 't/lib';
 use DBICDHTest;
 use aliased 'DBIx::Class::DeploymentHandler::DeployMethod::SQL::Translator';
-use File::Spec::Functions;
+use File::Spec::Functions qw(catfile splitdir);
 use File::Path qw(rmtree mkpath);
-use File::Temp 'tempfile';
+use File::Temp qw(tempfile tempdir);
 
 my $dbh = DBICDHTest::dbh();
 my @connection = (sub { $dbh }, { ignore_version => 1 });
-my $sql_dir = 't/sql';
+my $sql_dir = tempdir( CLEANUP => 1 );
 my (undef, $stuffthatran_fn) = tempfile(OPEN => 0);
 
-DBICDHTest::ready;
-
 for (qw(initialize upgrade downgrade deploy)) {
-   mkpath(catfile(qw( t sql _common),  $_, '_any' ));
+   mkpath(catfile(splitdir($sql_dir), '_common',  $_, '_any' ));
    open my $fh, '>',
-      catfile(qw( t sql _common), $_, qw(_any 000-win.pl ));
+      catfile(splitdir($sql_dir), '_common', $_, qw(_any 000-win.pl ));
    print {$fh} qq^sub {open my \$fh, ">>", '$stuffthatran_fn'; use Data::Dumper::Concise; print {\$fh} join(",", \@{\$_[1]||[]}) . "\\n";  }^;
    close $fh;
 }
 
 for (qw(initialize upgrade downgrade deploy)) {
-   mkpath(catfile(qw( t sql SQLite),  $_, '_any' ));
+   mkpath(catfile(splitdir($sql_dir), 'SQLite',  $_, '_any' ));
    open my $fh, '>',
-      catfile(qw( t sql SQLite), $_, qw(_any 000-win2.pl ));
+      catfile(splitdir($sql_dir), 'SQLite', $_, qw(_any 000-win2.pl ));
    print {$fh} qq^sub {open my \$fh, ">>", '$stuffthatran_fn'; use Data::Dumper::Concise; print {\$fh} join(",", \@{\$_[1]||[]}) . "\\n";  }^;
    close $fh;
 }
@@ -50,9 +48,9 @@ VERSION1: {
 
    $dm->prepare_deploy;
 
-   mkpath(catfile(qw( t sql SQLite initialize 1.0 )));
+   mkpath(catfile(splitdir($sql_dir), qw(SQLite initialize 1.0 )));
    open my $prerun, '>',
-      catfile(qw( t sql SQLite initialize 1.0 003-semiautomatic.pl ));
+      catfile(splitdir($sql_dir), qw(SQLite initialize 1.0 003-semiautomatic.pl ));
    my (undef, $fn) = tempfile(OPEN => 0);
    print {$prerun} "sub { open my \$fh, '>', '$fn'}";
    close $prerun;
@@ -63,7 +61,7 @@ VERSION1: {
    dies_ok {$dm->prepare_deploy} 'prepare_deploy dies if you run it twice' ;
 
    ok(
-      -f catfile(qw( t sql SQLite deploy 1.0 001-auto.sql )),
+      -f catfile(splitdir($sql_dir), qw(SQLite deploy 1.0 001-auto.sql )),
       '1.0 schema gets generated properly'
    );
 
@@ -98,10 +96,10 @@ VERSION2: {
    my $version = $s->schema_version();
    $dm->prepare_deploy;
    ok(
-      -f catfile(qw( t sql SQLite deploy 2.0 001-auto.sql )),
+      -f catfile(splitdir($sql_dir), qw(SQLite deploy 2.0 001-auto.sql )),
       '2.0 schema gets generated properly'
    );
-   mkpath(catfile(qw( t sql SQLite upgrade 1.0-2.0 )));
+   mkpath(catfile(splitdir($sql_dir), qw(SQLite upgrade 1.0-2.0 )));
    $dm->prepare_upgrade({
      from_version => '1.0',
      to_version => '2.0',
@@ -119,17 +117,17 @@ VERSION2: {
       ok( $warned, 'prepare_upgrade with a bogus preversion warns' );
    }
    ok(
-      -f catfile(qw( t sql SQLite upgrade 1.0-2.0 001-auto.sql )),
+      -f catfile(splitdir($sql_dir), qw(SQLite upgrade 1.0-2.0 001-auto.sql )),
       '1.0-2.0 diff gets generated properly and default start and end versions get set'
    );
-   mkpath(catfile(qw( t sql SQLite downgrade 2.0-1.0 )));
+   mkpath(catfile(splitdir($sql_dir), qw(SQLite downgrade 2.0-1.0 )));
    $dm->prepare_downgrade({
      from_version => $version,
      to_version => '1.0',
      version_set => [$version, '1.0']
    });
    ok(
-      -f catfile(qw( t sql SQLite downgrade 2.0-1.0 001-auto.sql )),
+      -f catfile(splitdir($sql_dir), qw(SQLite downgrade 2.0-1.0 001-auto.sql )),
       '2.0-1.0 diff gets generated properly'
    );
    dies_ok {
@@ -145,14 +143,14 @@ VERSION2: {
       })
    } 'schema not uppgrayyed';
 
-   mkpath catfile(qw( t sql _common upgrade 1.0-2.0 ));
+   mkpath catfile(splitdir($sql_dir), qw(_common upgrade 1.0-2.0 ));
    open my $common, '>',
-      catfile(qw( t sql _common upgrade 1.0-2.0 002-semiautomatic.sql ));
+      catfile(splitdir($sql_dir), qw(_common upgrade 1.0-2.0 002-semiautomatic.sql ));
    print {$common} qq<INSERT INTO Foo (bar, baz) VALUES ("hello", "world");\n\n>;
    close $common;
 
    open my $common_pl, '>',
-      catfile(qw( t sql _common upgrade 1.0-2.0 003-semiautomatic.pl ));
+      catfile(splitdir($sql_dir), qw(_common upgrade 1.0-2.0 003-semiautomatic.pl ));
    print {$common_pl} q|
       sub {
          my $schema = shift;
@@ -205,7 +203,7 @@ VERSION3: {
    my $version = $s->schema_version();
    $dm->prepare_deploy;
    ok(
-      -f catfile(qw( t sql SQLite deploy 3.0 001-auto.sql )),
+      -f catfile(splitdir($sql_dir), qw(SQLite deploy 3.0 001-auto.sql )),
       '2.0 schema gets generated properly'
    );
    $dm->prepare_downgrade({
@@ -214,7 +212,7 @@ VERSION3: {
      version_set => [$version, '1.0']
    });
    ok(
-      -f catfile(qw( t sql SQLite downgrade 3.0-1.0 001-auto.sql )),
+      -f catfile(splitdir($sql_dir), qw(SQLite downgrade 3.0-1.0 001-auto.sql )),
       '3.0-1.0 diff gets generated properly'
    );
    $dm->prepare_upgrade({
@@ -223,7 +221,7 @@ VERSION3: {
      version_set => ['1.0', $version]
    });
    ok(
-      -f catfile(qw( t sql SQLite upgrade 1.0-3.0 001-auto.sql )),
+      -f catfile(splitdir($sql_dir), qw(SQLite upgrade 1.0-3.0 001-auto.sql )),
       '1.0-3.0 diff gets generated properly'
    );
    $dm->prepare_upgrade({
@@ -240,7 +238,7 @@ VERSION3: {
       }
    'prepare_upgrade dies if you clobber an existing upgrade file' ;
    ok(
-      -f catfile(qw( t sql SQLite upgrade 1.0-2.0 001-auto.sql )),
+      -f catfile(splitdir($sql_dir), qw(SQLite upgrade 1.0-2.0 001-auto.sql )),
       '2.0-3.0 diff gets generated properly'
    );
    dies_ok {
index 709fcd0..cd2612c 100644 (file)
@@ -8,11 +8,12 @@ use DBICDHTest;
 use aliased
    'DBIx::Class::DeploymentHandler::DeployMethod::SQL::Translator::Deprecated';
 
-use File::Spec::Functions;
+use File::Spec::Functions qw(catfile splitdir);
+use File::Temp 'tempdir';
 
 my $dbh = DBICDHTest::dbh();
 my @connection = (sub { $dbh }, { ignore_version => 1 });
-my $sql_dir = 't/sql';
+my $sql_dir = tempdir( CLEANUP => 1 );
 
 DBICDHTest::ready;
 
@@ -31,7 +32,7 @@ VERSION1: {
    $dm->prepare_deploy;
 
    ok(
-      -f catfile(qw( t sql DBICVersion-Schema-1.0-SQLite.sql )),
+      -f catfile(splitdir($sql_dir), qw(DBICVersion-Schema-1.0-SQLite.sql )),
       '1.0 schema gets generated properly'
    );
 
index faa725e..b9164a7 100644 (file)
@@ -9,15 +9,13 @@ use Test::Exception;
 use lib 't/lib';
 use DBICDHTest;
 use aliased 'DBIx::Class::DeploymentHandler::DeployMethod::SQL::Translator';
-use File::Spec::Functions;
+use File::Spec::Functions qw(catfile splitdir);
 use File::Path qw(rmtree mkpath);
-use File::Temp 'tempfile';
+use File::Temp qw(tempfile tempdir);
 
 my $dbh = DBICDHTest::dbh();
 my @connection = (sub { $dbh }, { ignore_version => 1 });
-my $sql_dir = 't/sql';
-
-DBICDHTest::ready;
+my $sql_dir = tempdir( CLEANUP => 1 );
 
 VERSION1: {
    use_ok 'DBICVersion_v1';
@@ -45,9 +43,9 @@ VERSION2: {
    });
 
    $dm->prepare_deploy;
-   mkpath(catfile(qw( t sql _preprocess_schema upgrade 1.0-2.0 )));
+   mkpath(catfile(splitdir($sql_dir), qw(_preprocess_schema upgrade 1.0-2.0 )));
    open my $prerun, '>',
-      catfile(qw( t sql _preprocess_schema upgrade 1.0-2.0 003-semiautomatic.pl ));
+      catfile(splitdir($sql_dir), qw(_preprocess_schema upgrade 1.0-2.0 003-semiautomatic.pl ));
    my (undef, $fn) = tempfile(OPEN => 0);
    print {$prerun}
       qq^sub {
index 013f79f..22017e3 100644 (file)
@@ -6,13 +6,6 @@ use warnings;
 use File::Path 'remove_tree';
 use DBI;
 
-sub ready {
-   if (-d 't/sql') {
-     remove_tree('t/sql');
-     mkdir 't/sql';
-   }
-}
-
 sub dbh {
   DBI->connect('dbi:SQLite::memory:', undef, undef, { RaiseError => 1 })
 }
index 01bdb0e..2d049a5 100644 (file)
@@ -10,12 +10,13 @@ use lib 't/lib';
 use DBICDHTest;
 use aliased 'DBIx::Class::DeploymentHandler::VersionStorage::Standard';
 use aliased 'DBIx::Class::DeploymentHandler::DeployMethod::SQL::Translator';
+use File::Temp 'tempdir';
 
 use DBICVersion_v1;
 use DBIx::Class::DeploymentHandler;
 my $dbh = DBICDHTest::dbh();
 my @connection = (sub { $dbh }, { ignore_version => 1 });
-my $sql_dir = 't/sql';
+my $sql_dir = tempdir( CLEANUP => 1 );
 
 my $s = DBICVersion::Schema->connect(@connection);
 {
@@ -25,8 +26,6 @@ my $s = DBICVersion::Schema->connect(@connection);
    like( $warning, qr/Your DB is currently unversioned. Please call upgrade on your schema to sync the DB/, 'warning when database is unversioned');
 }
 
-DBICDHTest::ready;
-
 my $dm = Translator->new({
    schema            => $s,
    script_directory => $sql_dir,