mirror of
				https://github.com/python/cpython.git
				synced 2025-11-03 19:34:08 +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):
 | 
			
		||||
                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):
 | 
			
		||||
        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:
 | 
			
		||||
            sqlite.connect(':memory:', check_same_thread=False)
 | 
			
		||||
        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))
 | 
			
		||||
        con.close()
 | 
			
		||||
 | 
			
		||||
    @unittest.skipIf(sqlite.sqlite_version_info < (3, 2, 2), 'needs sqlite 3.2.2 or newer')
 | 
			
		||||
    def CheckOnConflictRollback(self):
 | 
			
		||||
        if sqlite.sqlite_version_info < (3, 2, 2):
 | 
			
		||||
            return
 | 
			
		||||
        con = sqlite.connect(":memory:")
 | 
			
		||||
        con.execute("create table foo(x, unique(x) on conflict rollback)")
 | 
			
		||||
        con.execute("insert into foo(x) values (1)")
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -111,25 +111,21 @@ class TransactionTests(unittest.TestCase):
 | 
			
		|||
        res = self.cur2.fetchall()
 | 
			
		||||
        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):
 | 
			
		||||
        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)")
 | 
			
		||||
        with self.assertRaises(sqlite.OperationalError):
 | 
			
		||||
            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):
 | 
			
		||||
        """
 | 
			
		||||
        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)")
 | 
			
		||||
        with self.assertRaises(sqlite.OperationalError):
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -340,11 +340,9 @@ class DateTimeTests(unittest.TestCase):
 | 
			
		|||
        ts2 = self.cur.fetchone()[0]
 | 
			
		||||
        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):
 | 
			
		||||
        # 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.
 | 
			
		||||
        now = datetime.datetime.now()
 | 
			
		||||
        self.cur.execute("insert into test(ts) values (current_timestamp)")
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue