From: Peter Rabbitson Date: Tue, 21 Apr 2009 08:37:11 +0000 (+0000) Subject: New SQLite kicks ass - remove some warning silencers and reinstantiate tests X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=f9dc732bf73b8913b9e37bf9963a57e61e3eb29f;p=dbsrgits%2FDBIx-Class-Historic.git New SQLite kicks ass - remove some warning silencers and reinstantiate tests --- diff --git a/Makefile.PL b/Makefile.PL index 6b51b1e..3b349a7 100644 --- a/Makefile.PL +++ b/Makefile.PL @@ -9,6 +9,7 @@ name 'DBIx-Class'; perl_version '5.006001'; all_from 'lib/DBIx/Class.pm'; +requires 'DBD::SQLite' => 1.23; requires 'Data::Page' => 2.00; requires 'Scalar::Util' => 0; requires 'SQL::Abstract' => 1.51; @@ -31,7 +32,7 @@ requires 'MRO::Compat' => 0.09; requires 'Encode' => 0 if ($] <= 5.008000); # configure_requires so the sanity check below can run -configure_requires 'DBD::SQLite' => 1.21; +configure_requires 'DBD::SQLite'; test_requires 'Test::Builder' => 0.33; test_requires 'Test::Warn' => 0.11; diff --git a/lib/DBIx/Class/Storage/DBI/SQLite.pm b/lib/DBIx/Class/Storage/DBI/SQLite.pm index e29c2ee..a4aeff6 100644 --- a/lib/DBIx/Class/Storage/DBI/SQLite.pm +++ b/lib/DBIx/Class/Storage/DBI/SQLite.pm @@ -45,21 +45,6 @@ sub backup return $backupfile; } -sub disconnect { - - # As described in this node http://www.perlmonks.org/?node_id=666210 - # there seems to be no sane way to ->disconnect a SQLite database with - # cached statement handles. As per mst we just zap the cache and - # proceed as normal. - - my $self = shift; - if ($self->connected) { - $self->_dbh->{CachedKids} = {}; - $self->next::method (@_); - } -} - - 1; =head1 NAME diff --git a/t/33storage_reconnect.t b/t/33storage_reconnect.t index 5bd797e..8f1eba1 100644 --- a/t/33storage_reconnect.t +++ b/t/33storage_reconnect.t @@ -7,17 +7,7 @@ use Test::More; use lib qw(t/lib); use DBICTest; -# equivalent of $Module::Install::AUTHOR -my $author = ( - ( not -d './inc' ) - or - ( -e ($^O eq 'VMS' ? './inc/_author' : './inc/.author') ) -); - -plan $author - ? (tests => 6) - : (skip_all => 'Test temporarily disabled due to a widespread buggy SQLite version') -; +plan tests => 6; my $db_orig = "$FindBin::Bin/var/DBIxClass.db"; my $db_tmp = "$db_orig.tmp"; @@ -31,12 +21,11 @@ cmp_ok(@art, '==', 3, "Three artists returned"); # Disconnect the dbh, and be sneaky about it # Also test if DBD::SQLite finaly knows how to ->disconnect properly -TODO: { - local $TODO = 'SQLite is evil/braindead. Once this test starts passing, remove the related atrocity from DBIx::Class::Storage::DBI::SQLite'; - my $w; - local $SIG{__WARN__} = sub { $w = shift }; - $schema->storage->_dbh->disconnect; - ok ($w !~ /active statement handles/, 'SQLite can disconnect properly \o/'); +{ + my $w; + local $SIG{__WARN__} = sub { $w = shift }; + $schema->storage->_dbh->disconnect; + ok ($w !~ /active statement handles/, 'SQLite can disconnect properly'); } # Try the operation again - What should happen here is: