X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2Fstorage%2Freplicated.t;h=82c809d306598775281f629e894fb235d107dcce;hb=e4b7965756585569b14566676e8c953a123bbe40;hp=cadd0850b49e16290e606dcc2230f9858f918501;hpb=617474ab7e555d02b6953fa2bdc902ee21d06cf2;p=dbsrgits%2FDBIx-Class-Historic.git diff --git a/t/storage/replicated.t b/t/storage/replicated.t index cadd085..82c809d 100644 --- a/t/storage/replicated.t +++ b/t/storage/replicated.t @@ -1,22 +1,19 @@ +use DBIx::Class::Optional::Dependencies -skip_all_without => 'test_replicated'; + use strict; use warnings; use Test::More; - +use DBIx::Class::_Util 'modver_gt_or_eq_and_lt'; use lib qw(t/lib); use DBICTest; 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'); - - if (DBICTest::RunMode->is_smoker) { - my $mver = Moose->VERSION; - plan skip_all => "A trial version $mver of Moose detected known to break replication - skipping test known to fail" - if ($mver >= 1.99 and $mver <= 1.9902); - } - + plan skip_all => "A trial version of Moose detected known to break replication - skipping test known to fail" if ( + DBICTest::RunMode->is_smoker + and + modver_gt_or_eq_and_lt( 'Moose', '1.99', '1.9903' ) + ) } use Test::Moose; @@ -24,17 +21,32 @@ use Test::Exception; 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"; my $var_dir = quotemeta ( File::Spec->catdir(qw/t var/) ); -use DBIx::Class::Storage::DBI::Replicated::Pool; -use DBIx::Class::Storage::DBI::Replicated::Balancer; -use DBIx::Class::Storage::DBI::Replicated::Replicant; +## Add a connect_info option to test option merging. use DBIx::Class::Storage::DBI::Replicated; +{ + package DBIx::Class::Storage::DBI::Replicated; + + use Moose; + + __PACKAGE__->meta->make_mutable; + + around connect_info => sub { + my ($next, $self, $info) = @_; + $info->[3]{master_option} = 1; + $self->$next($info); + }; + + __PACKAGE__->meta->make_immutable; + + no Moose; +} + =head1 HOW TO USE @@ -124,27 +136,6 @@ TESTSCHEMACLASSES: { sub cleanup {} ## --------------------------------------------------------------------- ## - ## Add a connect_info option to test option merging. - ## --------------------------------------------------------------------- ## - { - package DBIx::Class::Storage::DBI::Replicated; - - use Moose; - - __PACKAGE__->meta->make_mutable; - - around connect_info => sub { - my ($next, $self, $info) = @_; - $info->[3]{master_option} = 1; - $self->$next($info); - }; - - __PACKAGE__->meta->make_immutable; - - no Moose; - } - - ## --------------------------------------------------------------------- ## ## Subclass for when you are using SQLite for testing, this provides a fake ## replication support. ## --------------------------------------------------------------------- ## @@ -209,10 +200,11 @@ TESTSCHEMACLASSES: { } } - ## Cleanup after ourselves. Unlink all gthe slave paths. + ## Cleanup after ourselves. Unlink all the slave paths. sub cleanup { my $self = shift @_; + $_->disconnect for values %{ $self->schema->storage->replicants }; foreach my $slave (@{$self->slave_paths}) { if(-e $slave) { unlink $slave; @@ -917,6 +909,7 @@ is $debug{storage_type}, 'REPLICANT', "got last query from a replicant: $debug{d is $debug{storage_type}, 'REPLICANT', "got last query from a replicant: $debug{dsn}"; } + ## Delete the old database files $replicated->cleanup;