]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
gh-129870: Skip test_dump_virtual_tables if SQLite lacks FTS4 support (#129913)
authorErlend E. Aasland <erlend@python.org>
Sun, 9 Feb 2025 20:43:23 +0000 (21:43 +0100)
committerGitHub <noreply@github.com>
Sun, 9 Feb 2025 20:43:23 +0000 (21:43 +0100)
Lib/test/test_sqlite3/test_dump.py
Lib/test/test_sqlite3/util.py

index 550cea41976441f995d6503c082ffaf77ac1b795..e18a207e9f649494c337493ea75e862f5669448e 100644 (file)
@@ -4,6 +4,7 @@ import unittest
 
 from .util import memory_database
 from .util import MemoryDatabaseMixin
+from .util import requires_virtual_table
 
 
 class DumpTests(MemoryDatabaseMixin, unittest.TestCase):
@@ -206,6 +207,7 @@ class DumpTests(MemoryDatabaseMixin, unittest.TestCase):
         self.assertEqual(expected, actual)
         self.assertEqual(self.cx.row_factory, dict_factory)
 
+    @requires_virtual_table("fts4")
     def test_dump_virtual_tables(self):
         # gh-64662
         expected = [
index 8643835cca46e260b2a67f1c59997bdcbfe4c48f..cccd062160fd4080ac9185381f26f2fd39ebf44b 100644 (file)
@@ -4,6 +4,7 @@ import io
 import re
 import sqlite3
 import test.support
+import unittest
 
 
 # Helper for temporary memory databases
@@ -79,3 +80,10 @@ class MemoryDatabaseMixin:
     @property
     def cu(self):
         return self.cur
+
+
+def requires_virtual_table(module):
+    with memory_database() as cx:
+        supported = (module,) in list(cx.execute("PRAGMA module_list"))
+        reason = f"Requires {module!r} virtual table support"
+        return unittest.skipUnless(supported, reason)