X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2F94versioning.t;h=d62f117d3186a8da8cb63b3b1f918a723eba56df;hb=b5f4f62f2e5d756401c91f8eb6a5fbe1db28b95e;hp=116093573a05843ad680059f0d1972d2f3c16f5d;hpb=14344bad7edc1e7aea58142658140e92881bba27;p=dbsrgits%2FDBIx-Class.git diff --git a/t/94versioning.t b/t/94versioning.t index 1160935..d62f117 100644 --- a/t/94versioning.t +++ b/t/94versioning.t @@ -16,10 +16,10 @@ BEGIN { unless ($dsn); - eval "use DBD::mysql; use SQL::Translator 0.09;"; + eval "use DBD::mysql; use SQL::Translator 0.09003;"; plan $@ - ? ( skip_all => 'needs DBD::mysql and SQL::Translator 0.09 for testing' ) - : ( tests => 23 ); + ? ( skip_all => 'needs DBD::mysql and SQL::Translator 0.09003 for testing' ) + : ( tests => 22 ); } my $version_table_name = 'dbix_class_schema_versions'; @@ -33,6 +33,8 @@ my $fn = { }; use lib qw(t/lib); +use DBICTest; # do not remove even though it is not used + use_ok('DBICVersionOrig'); my $schema_orig = DBICVersion::Schema->connect($dsn, $user, $pass, { ignore_version => 1 }); @@ -66,6 +68,9 @@ my $schema_upgrade = DBICVersion::Schema->connect($dsn, $user, $pass, { ignore_v { my $w; local $SIG{__WARN__} = sub { $w = shift }; + + sleep 1; # remove this when TODO below is completed + $schema_upgrade->upgrade(); like ($w, qr/Attempting upgrade\.$/, 'Warn before upgrade'); } @@ -79,12 +84,19 @@ my $schema_upgrade = DBICVersion::Schema->connect($dsn, $user, $pass, { ignore_v # should overwrite files and warn about it my @w; - local $SIG{__WARN__} = sub { push @w, shift }; + local $SIG{__WARN__} = sub { + if ($_[0] =~ /Overwriting existing/) { + push @w, $_[0]; + } + else { + warn @_; + } + }; $schema_upgrade->create_ddl_dir('MySQL', '2.0', $ddl_dir, '1.0'); is (2, @w, 'A warning generated for both the DDL and the diff'); - like ($w[0], qr/^Overwriting existing DDL file - $fn->{v2}/, 'New version DDL overwrite warning'); - like ($w[1], qr/^Overwriting existing diff file - $fn->{trans}/, 'Upgrade diff overwrite warning'); + like ($w[0], qr/Overwriting existing DDL file - $fn->{v2}/, 'New version DDL overwrite warning'); + like ($w[1], qr/Overwriting existing diff file - $fn->{trans}/, 'Upgrade diff overwrite warning'); } { @@ -143,7 +155,10 @@ my $schema_upgrade = DBICVersion::Schema->connect($dsn, $user, $pass, { ignore_v } # attempt a deploy/upgrade cycle within one second -{ +TODO: { + + local $TODO = 'To fix this properly the table must be extended with an autoinc column, mst will not accept anything less'; + eval { $schema_orig->storage->dbh->do('drop table ' . $version_table_name) }; eval { $schema_orig->storage->dbh->do('drop table ' . $old_table_name) }; eval { $schema_orig->storage->dbh->do('drop table TestVersion') }; @@ -158,13 +173,11 @@ my $schema_upgrade = DBICVersion::Schema->connect($dsn, $user, $pass, { ignore_v $schema_orig->deploy; } - my $w; - local $SIG{__WARN__} = sub { $w = shift }; + local $SIG{__WARN__} = sub { warn if $_[0] !~ /Attempting upgrade\.$/ }; $schema_upgrade->upgrade(); - like ($w, qr/Attempting upgrade\.$/, 'Warn before upgrade'); is($schema_upgrade->get_db_version(), '2.0', 'Fast deploy/upgrade'); -} +}; unless ($ENV{DBICTEST_KEEP_VERSIONING_DDL}) { unlink $_ for (values %$fn);