From e82cef7f68956b3fdfff8d1e0e7ab6235cc10593 Mon Sep 17 00:00:00 2001 From: "Erlend E. Aasland" Date: Sun, 9 Feb 2025 20:14:57 +0100 Subject: [PATCH] gh-129870: Skip test_dump_virtual_tables if SQLite lacks FTS4 support --- Lib/test/test_sqlite3/test_dump.py | 2 ++ Lib/test/test_sqlite3/util.py | 8 ++++++++ 2 files changed, 10 insertions(+) diff --git a/Lib/test/test_sqlite3/test_dump.py b/Lib/test/test_sqlite3/test_dump.py index 550cea41976441..e18a207e9f6494 100644 --- a/Lib/test/test_sqlite3/test_dump.py +++ b/Lib/test/test_sqlite3/test_dump.py @@ -4,6 +4,7 @@ from .util import memory_database from .util import MemoryDatabaseMixin +from .util import requires_virtual_table class DumpTests(MemoryDatabaseMixin, unittest.TestCase): @@ -206,6 +207,7 @@ def dict_factory(cu, row): 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 = [ diff --git a/Lib/test/test_sqlite3/util.py b/Lib/test/test_sqlite3/util.py index 8643835cca46e2..cccd062160fd40 100644 --- a/Lib/test/test_sqlite3/util.py +++ b/Lib/test/test_sqlite3/util.py @@ -4,6 +4,7 @@ import re import sqlite3 import test.support +import unittest # Helper for temporary memory databases @@ -79,3 +80,10 @@ def cx(self): @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)