mirror of
https://github.com/python/cpython.git
synced 2025-08-04 00:48:58 +00:00
Disable the busy handler for all concurrency tests; we have full control over the order of the SQLite C API calls, so we can safely do this. test_sqlite3.test_transactions now completes ~10 times faster than before. Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
This commit is contained in:
parent
c19713d4a1
commit
6f6171b33b
2 changed files with 7 additions and 11 deletions
|
@ -1837,7 +1837,7 @@ class SqliteOnConflictTests(unittest.TestCase):
|
|||
|
||||
@requires_subprocess()
|
||||
class MultiprocessTests(unittest.TestCase):
|
||||
CONNECTION_TIMEOUT = SHORT_TIMEOUT / 1000. # Defaults to 30 ms
|
||||
CONNECTION_TIMEOUT = 0 # Disable the busy timeout.
|
||||
|
||||
def tearDown(self):
|
||||
unlink(TESTFN)
|
||||
|
|
|
@ -23,21 +23,19 @@
|
|||
import os, unittest
|
||||
import sqlite3 as sqlite
|
||||
|
||||
from test.support import LOOPBACK_TIMEOUT
|
||||
from test.support.os_helper import TESTFN, unlink
|
||||
|
||||
from test.test_sqlite3.test_dbapi import memory_database
|
||||
|
||||
|
||||
TIMEOUT = LOOPBACK_TIMEOUT / 10
|
||||
|
||||
|
||||
class TransactionTests(unittest.TestCase):
|
||||
def setUp(self):
|
||||
self.con1 = sqlite.connect(TESTFN, timeout=TIMEOUT)
|
||||
# We can disable the busy handlers, since we control
|
||||
# the order of SQLite C API operations.
|
||||
self.con1 = sqlite.connect(TESTFN, timeout=0)
|
||||
self.cur1 = self.con1.cursor()
|
||||
|
||||
self.con2 = sqlite.connect(TESTFN, timeout=TIMEOUT)
|
||||
self.con2 = sqlite.connect(TESTFN, timeout=0)
|
||||
self.cur2 = self.con2.cursor()
|
||||
|
||||
def tearDown(self):
|
||||
|
@ -117,10 +115,8 @@ class TransactionTests(unittest.TestCase):
|
|||
self.cur2.execute("insert into test(i) values (5)")
|
||||
|
||||
def test_locking(self):
|
||||
"""
|
||||
This tests the improved concurrency with pysqlite 2.3.4. You needed
|
||||
to roll back con2 before you could commit con1.
|
||||
"""
|
||||
# This tests the improved concurrency with pysqlite 2.3.4. You needed
|
||||
# to roll back con2 before you could commit con1.
|
||||
self.cur1.execute("create table test(i)")
|
||||
self.cur1.execute("insert into test(i) values (5)")
|
||||
with self.assertRaises(sqlite.OperationalError):
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue