bpo-27645: Fix version number in 'database in transaction' fallback (GH-6131)
It was actually fixed in SQLite 3.8.8, not 3.8.7.
This commit is contained in:
parent
7f81bb2add
commit
bbf7bb7a63
|
@ -37,14 +37,12 @@ class BackupTests(unittest.TestCase):
|
||||||
self.cx.backup(bck)
|
self.cx.backup(bck)
|
||||||
|
|
||||||
def test_bad_target_in_transaction(self):
|
def test_bad_target_in_transaction(self):
|
||||||
if sqlite.sqlite_version_info == (3, 8, 7, 1):
|
|
||||||
self.skipTest('skip until we debug https://bugs.python.org/issue27645#msg313562')
|
|
||||||
bck = sqlite.connect(':memory:')
|
bck = sqlite.connect(':memory:')
|
||||||
bck.execute('CREATE TABLE bar (key INTEGER)')
|
bck.execute('CREATE TABLE bar (key INTEGER)')
|
||||||
bck.executemany('INSERT INTO bar (key) VALUES (?)', [(3,), (4,)])
|
bck.executemany('INSERT INTO bar (key) VALUES (?)', [(3,), (4,)])
|
||||||
with self.assertRaises(sqlite.OperationalError) as cm:
|
with self.assertRaises(sqlite.OperationalError) as cm:
|
||||||
self.cx.backup(bck)
|
self.cx.backup(bck)
|
||||||
if sqlite.sqlite_version_info < (3, 8, 7):
|
if sqlite.sqlite_version_info < (3, 8, 8):
|
||||||
self.assertEqual(str(cm.exception), 'target is in transaction')
|
self.assertEqual(str(cm.exception), 'target is in transaction')
|
||||||
|
|
||||||
def test_keyword_only_args(self):
|
def test_keyword_only_args(self):
|
||||||
|
|
|
@ -1481,8 +1481,8 @@ pysqlite_connection_backup(pysqlite_Connection *self, PyObject *args, PyObject *
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if SQLITE_VERSION_NUMBER < 3008007
|
#if SQLITE_VERSION_NUMBER < 3008008
|
||||||
/* Since 3.8.7 this is already done, per commit
|
/* Since 3.8.8 this is already done, per commit
|
||||||
https://www.sqlite.org/src/info/169b5505498c0a7e */
|
https://www.sqlite.org/src/info/169b5505498c0a7e */
|
||||||
if (!sqlite3_get_autocommit(((pysqlite_Connection *)target)->db)) {
|
if (!sqlite3_get_autocommit(((pysqlite_Connection *)target)->db)) {
|
||||||
PyErr_SetString(pysqlite_OperationalError, "target is in transaction");
|
PyErr_SetString(pysqlite_OperationalError, "target is in transaction");
|
||||||
|
|
Loading…
Reference in New Issue