[Python-checkins] r62161 - python/trunk/Lib/sqlite3/test/transactions.py

neal.norwitz python-checkins at python.org
Sat Apr 5 06:26:31 CEST 2008


Author: neal.norwitz
Date: Sat Apr  5 06:26:31 2008
New Revision: 62161

Modified:
   python/trunk/Lib/sqlite3/test/transactions.py
Log:
Prevent test_sqlite from hanging on older versions of sqlite.
The problem is that when trying to do the second insert, sqlite seems to sleep
for a very long time.  Here is the output from strace:

  read(6, "SQLite format 3\0\4\0\1\1\0@  \0\0\0\1\0\0\0\0"..., 1024) = 1024
  nanosleep({4294, 966296000},  <unfinished ...>

I don't know which version this was fixed in, but 3.2.1 definitely fails.


Modified: python/trunk/Lib/sqlite3/test/transactions.py
==============================================================================
--- python/trunk/Lib/sqlite3/test/transactions.py	(original)
+++ python/trunk/Lib/sqlite3/test/transactions.py	Sat Apr  5 06:26:31 2008
@@ -113,6 +113,10 @@
         self.failUnlessEqual(len(res), 1)
 
     def CheckRaiseTimeout(self):
+        if sqlite.sqlite_version_info < (3, 2, 2):
+            # This will fail (hang) on earlier versions of sqlite.
+            # Determine exact version it was fixed. 3.2.1 hangs.
+            return
         self.cur1.execute("create table test(i)")
         self.cur1.execute("insert into test(i) values (5)")
         try:
@@ -128,6 +132,10 @@
         This tests the improved concurrency with pysqlite 2.3.4. You needed
         to roll back con2 before you could commit con1.
         """
+        if sqlite.sqlite_version_info < (3, 2, 2):
+            # This will fail (hang) on earlier versions of sqlite.
+            # Determine exact version it was fixed. 3.2.1 hangs.
+            return
         self.cur1.execute("create table test(i)")
         self.cur1.execute("insert into test(i) values (5)")
         try:


More information about the Python-checkins mailing list