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:
Aviv Palivoda 2018-03-18 02:48:55 +02:00 committed by Berker Peksag
parent 7f81bb2add
commit bbf7bb7a63
2 changed files with 3 additions and 5 deletions

View File

@ -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):

View File

@ -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");