Skip to content

Commit

Permalink
New SQLite kicks ass - remove some warning silencers and reinstantiat…
Browse files Browse the repository at this point in the history
…e tests
  • Loading branch information
ribasushi committed Apr 21, 2009
1 parent 624764a commit f9dc732
Show file tree
Hide file tree
Showing 3 changed files with 8 additions and 33 deletions.
3 changes: 2 additions & 1 deletion Makefile.PL
Expand Up @@ -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;
Expand All @@ -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;
Expand Down
15 changes: 0 additions & 15 deletions lib/DBIx/Class/Storage/DBI/SQLite.pm
Expand Up @@ -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
Expand Down
23 changes: 6 additions & 17 deletions t/33storage_reconnect.t
Expand Up @@ -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";
Expand All @@ -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:
Expand Down

0 comments on commit f9dc732

Please sign in to comment.