[svn:DBD-Pg] r11600 - DBD-Pg/trunk/t

[email protected]
Newsgroups perl.dbd.pg.changes
Message-ID <[email protected]>
Author: turnstep
Date: Sat Jul 26 20:50:07 2008
New Revision: 11600

Modified:
   DBD-Pg/trunk/t/02attribs.t

Log:
Enforce minimum DBI version for ReadOnly check, do a second insert check.


Modified: DBD-Pg/trunk/t/02attribs.t
==============================================================================
--- DBD-Pg/trunk/t/02attribs.t	(original)
+++ DBD-Pg/trunk/t/02attribs.t	Sat Jul 26 20:50:07 2008
@@ -18,7 +18,7 @@
 if (! defined $dbh) {
 	plan skip_all => 'Connection to database failed, cannot continue testing';
 }
-plan tests => 171;
+plan tests => 172;
 
 isnt ($dbh, undef, 'Connect to database for handle attributes testing');
 
@@ -1164,49 +1164,59 @@
 # Test of the database handle attribute "ReadOnly"
 #
 
-$t='Database handle attribute "ReadOnly" starts out unefined';
-$dbh->commit();
-$dbh4 = connect_database();
-$dbh4->trace(0);
-is ($dbh4->{ReadOnly}, undef, $t);
-
-$t='Database handle attribute "ReadOnly" sets transactions to readonly mode';
-$dbh4->{ReadOnly} = 1;
-
-$t='Database handle attribute "ReadOnly" allows SELECT queries to work when on';
-$result = $dbh4->selectall_arrayref('SELECT 12345')->[0][0];
-is ($result, 12345, $t);
-
-$t='Database handle attribute "ReadOnly" prevents INSERT queries from working when on';
-$SQL = 'INSERT INTO dbd_pg_test (id) VALUES (50)';
-eval { $dbh4->do($SQL); };
-like ($@, qr{transaction is read-only}, $t);
-$dbh4->rollback();
-
-$sth = $dbh4->prepare($SQL);
-eval { $sth->execute(); };
-like ($@, qr{transaction is read-only}, $t);
-$dbh4->rollback();
-
-$t='Database handle attribute "ReadOnly" allows INSERT queries when switched off';
-$dbh4->{ReadOnly} = 0;
-eval { $dbh4->do($SQL); };
-is ($@, q{}, $t);
-$dbh4->rollback();
+SKIP: {
+	if ($DBI::VERSION < 1.55) {
+		skip ('DBI must be at least version 1.55 to test DB attribute "ReadOnly"', 8);
+	}
 
-$dbh4->{ReadOnly} = 1;
-$dbh4->{AutoCommit} = 1;
-$t='Database handle attribute "ReadOnly" has no effect if AutoCommit is on';
-eval { $dbh4->do($SQL); };
-is ($@, q{}, $t);
+	$t='Database handle attribute "ReadOnly" starts out undefined';
+	$dbh->commit();
+	$dbh4 = connect_database();
+	$dbh4->trace(0);
+	is ($dbh4->{ReadOnly}, undef, $t);
+
+	$t='Database handle attribute "ReadOnly" allows SELECT queries to work when on';
+	$dbh4->{ReadOnly} = 1;
+	$result = $dbh4->selectall_arrayref('SELECT 12345')->[0][0];
+	is ($result, 12345, $t);
+
+	$t='Database handle attribute "ReadOnly" prevents INSERT queries from working when on';
+	$SQL = 'INSERT INTO dbd_pg_test (id) VALUES (50)';
+	eval { $dbh4->do($SQL); };
+	like ($@, qr{transaction is read-only}, $t);
+	$dbh4->rollback();
+
+	$sth = $dbh4->prepare($SQL);
+	eval { $sth->execute(); };
+	like ($@, qr{transaction is read-only}, $t);
+	$dbh4->rollback();
+
+	$t='Database handle attribute "ReadOnly" allows INSERT queries when switched off';
+	$dbh4->{ReadOnly} = 0;
+	eval { $dbh4->do($SQL); };
+	is ($@, q{}, $t);
+	$dbh4->rollback();
 
-my $delete = 'DELETE FROM dbd_pg_test WHERE id = 50';
-$dbh4->do($delete);
-$sth = $dbh4->prepare($SQL);
-eval { $sth->execute(); };
-is ($@, q{}, $t);
+	$t='Database handle attribute "ReadOnly" allows INSERT queries when switched off';
+	$dbh4->{ReadOnly} = 0;
+	eval { $dbh4->do($SQL); };
+	is ($@, q{}, $t);
+	$dbh4->rollback();
 
-$dbh4->disconnect();
+	$dbh4->{ReadOnly} = 1;
+	$dbh4->{AutoCommit} = 1;
+	$t='Database handle attribute "ReadOnly" has no effect if AutoCommit is on';
+	eval { $dbh4->do($SQL); };
+	is ($@, q{}, $t);
+
+	my $delete = 'DELETE FROM dbd_pg_test WHERE id = 50';
+	$dbh4->do($delete);
+	$sth = $dbh4->prepare($SQL);
+	eval { $sth->execute(); };
+	is ($@, q{}, $t);
+
+	$dbh4->disconnect();
+}
 
 #
 # Test of the database handle attribute InactiveDestroy
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.