mirror of
https://github.com/python/cpython.git
synced 2025-09-10 18:58:35 +00:00
Mark tests as skipped when a SQLite version is not supported
This commit is contained in:
parent
2b50899a28
commit
f85bce74db
4 changed files with 9 additions and 16 deletions
|
@ -177,9 +177,9 @@ class ConnectionTests(unittest.TestCase):
|
||||||
with self.assertRaises(sqlite.OperationalError):
|
with self.assertRaises(sqlite.OperationalError):
|
||||||
cx.execute('insert into test(id) values(1)')
|
cx.execute('insert into test(id) values(1)')
|
||||||
|
|
||||||
|
@unittest.skipIf(sqlite.sqlite_version_info >= (3, 3, 1),
|
||||||
|
'needs sqlite versions older than 3.3.1')
|
||||||
def CheckSameThreadErrorOnOldVersion(self):
|
def CheckSameThreadErrorOnOldVersion(self):
|
||||||
if sqlite.sqlite_version_info >= (3, 3, 1):
|
|
||||||
self.skipTest('test needs sqlite3 versions older than 3.3.1')
|
|
||||||
with self.assertRaises(sqlite.NotSupportedError) as cm:
|
with self.assertRaises(sqlite.NotSupportedError) as cm:
|
||||||
sqlite.connect(':memory:', check_same_thread=False)
|
sqlite.connect(':memory:', check_same_thread=False)
|
||||||
self.assertEqual(str(cm.exception), 'shared connections not available')
|
self.assertEqual(str(cm.exception), 'shared connections not available')
|
||||||
|
|
|
@ -84,9 +84,8 @@ class RegressionTests(unittest.TestCase):
|
||||||
cur.execute("select 1 x union select " + str(i))
|
cur.execute("select 1 x union select " + str(i))
|
||||||
con.close()
|
con.close()
|
||||||
|
|
||||||
|
@unittest.skipIf(sqlite.sqlite_version_info < (3, 2, 2), 'needs sqlite 3.2.2 or newer')
|
||||||
def CheckOnConflictRollback(self):
|
def CheckOnConflictRollback(self):
|
||||||
if sqlite.sqlite_version_info < (3, 2, 2):
|
|
||||||
return
|
|
||||||
con = sqlite.connect(":memory:")
|
con = sqlite.connect(":memory:")
|
||||||
con.execute("create table foo(x, unique(x) on conflict rollback)")
|
con.execute("create table foo(x, unique(x) on conflict rollback)")
|
||||||
con.execute("insert into foo(x) values (1)")
|
con.execute("insert into foo(x) values (1)")
|
||||||
|
|
|
@ -111,25 +111,21 @@ class TransactionTests(unittest.TestCase):
|
||||||
res = self.cur2.fetchall()
|
res = self.cur2.fetchall()
|
||||||
self.assertEqual(len(res), 1)
|
self.assertEqual(len(res), 1)
|
||||||
|
|
||||||
|
@unittest.skipIf(sqlite.sqlite_version_info < (3, 2, 2),
|
||||||
|
'test hangs on sqlite versions older than 3.2.2')
|
||||||
def CheckRaiseTimeout(self):
|
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("create table test(i)")
|
||||||
self.cur1.execute("insert into test(i) values (5)")
|
self.cur1.execute("insert into test(i) values (5)")
|
||||||
with self.assertRaises(sqlite.OperationalError):
|
with self.assertRaises(sqlite.OperationalError):
|
||||||
self.cur2.execute("insert into test(i) values (5)")
|
self.cur2.execute("insert into test(i) values (5)")
|
||||||
|
|
||||||
|
@unittest.skipIf(sqlite.sqlite_version_info < (3, 2, 2),
|
||||||
|
'test hangs on sqlite versions older than 3.2.2')
|
||||||
def CheckLocking(self):
|
def CheckLocking(self):
|
||||||
"""
|
"""
|
||||||
This tests the improved concurrency with pysqlite 2.3.4. You needed
|
This tests the improved concurrency with pysqlite 2.3.4. You needed
|
||||||
to roll back con2 before you could commit con1.
|
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("create table test(i)")
|
||||||
self.cur1.execute("insert into test(i) values (5)")
|
self.cur1.execute("insert into test(i) values (5)")
|
||||||
with self.assertRaises(sqlite.OperationalError):
|
with self.assertRaises(sqlite.OperationalError):
|
||||||
|
|
|
@ -340,11 +340,9 @@ class DateTimeTests(unittest.TestCase):
|
||||||
ts2 = self.cur.fetchone()[0]
|
ts2 = self.cur.fetchone()[0]
|
||||||
self.assertEqual(ts, ts2)
|
self.assertEqual(ts, ts2)
|
||||||
|
|
||||||
|
@unittest.skipIf(sqlite.sqlite_version_info < (3, 1),
|
||||||
|
'the date functions are available on 3.1 or later')
|
||||||
def CheckSqlTimestamp(self):
|
def CheckSqlTimestamp(self):
|
||||||
# The date functions are only available in SQLite version 3.1 or later
|
|
||||||
if sqlite.sqlite_version_info < (3, 1):
|
|
||||||
return
|
|
||||||
|
|
||||||
# SQLite's current_timestamp uses UTC time, while datetime.datetime.now() uses local time.
|
# SQLite's current_timestamp uses UTC time, while datetime.datetime.now() uses local time.
|
||||||
now = datetime.datetime.now()
|
now = datetime.datetime.now()
|
||||||
self.cur.execute("insert into test(ts) values (current_timestamp)")
|
self.cur.execute("insert into test(ts) values (current_timestamp)")
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue