next unless $dsn;
+ note "Testing with ${prefix}_DSN";
+
skip ("Testing with ${prefix}_DSN needs " . DBIx::Class::Optional::Dependencies->req_missing_for( $env2optdep->{$prefix} ), 1)
unless DBIx::Class::Optional::Dependencies->req_ok_for($env2optdep->{$prefix});
});
my $dbh = $schema->storage->dbh;
- my $sg = Scope::Guard->new(\&cleanup);
+ my $sg = Scope::Guard->new(sub { cleanup($schema) });
eval { $dbh->do(q[DROP TABLE "artist"]) };
$dbh->do(<<EOF);
# test savepoints
throws_ok {
$schema->txn_do(sub {
+ my ($schema, $ars) = @_;
eval {
$schema->txn_do(sub {
$ars->create({ name => 'in_savepoint' });
'savepoint rolled back');
$ars->create({ name => 'in_outer_txn' });
die "rolling back outer txn";
- });
+ }, $schema, $ars);
} qr/rolling back outer txn/,
'correct exception for rollback';
# clean up our mess
sub cleanup {
+ my $schema = shift;
+
my $dbh;
eval {
$schema->storage->disconnect; # to avoid object FOO is in use errors