X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2Fstorage%2Ferror.t;h=d5980eb361c552cebbed63caf96a1796bd2983d3;hb=1b5ddf236a7911b6686be06602ffd657372523c2;hp=68bbb5ad06237230affb6f6d0a1f81cce1bfb2dd;hpb=a458e9e3a522099867e27e4c84cd94ca37e1355b;p=dbsrgits%2FDBIx-Class.git diff --git a/t/storage/error.t b/t/storage/error.t index 68bbb5a..d5980eb 100644 --- a/t/storage/error.t +++ b/t/storage/error.t @@ -6,19 +6,16 @@ use Test::Warn; use Test::Exception; use lib qw(t/lib); -use_ok( 'DBICTest' ); -use_ok( 'DBICTest::Schema' ); +use DBICTest; my $schema = DBICTest->init_schema; -my $e_start = quotemeta('DBIx::Class::'); - warnings_are ( sub { throws_ok ( sub { $schema->resultset('CD')->create({ title => 'vacation in antarctica' }) }, - qr/$e_start.+constraint failed.+NULL/s + qr/DBI Exception.+cd\.artist.+NULL/s ); # as opposed to some other error }, [], 'No warnings besides exception' ); @@ -28,7 +25,7 @@ throws_ok ( sub { $dbh->do ('INSERT INTO nonexistent_table VALUES (1)') }, - qr/$e_start.+DBI Exception.+no such table/, + qr/DBI Exception.+no such table.+nonexistent_table/s, 'DBI exceptions properly handled by dbic-installed callback' ); @@ -36,13 +33,17 @@ throws_ok ( # destruction of everything except the $dbh should use the proper # exception fallback: -{ +SKIP: { + if (DBIx::Class::_ENV_::PEEPEENESS) { + skip "Your perl version $] appears to leak like a sieve - skipping garbage collected \$schema test", 1; + } + undef ($schema); throws_ok ( sub { $dbh->do ('INSERT INTO nonexistent_table VALUES (1)') }, - qr/DBI Exception.+unhandled by DBIC.+no such table/, + qr/DBI Exception.+unhandled by DBIC.+no such table.+nonexistent_table/s, 'callback works after $schema is gone' ); }