Skip sqlite search backend tests if fts5 is unavailable

pull/8274/head
Matt Westcott 2022-01-11 20:29:39 +00:00
rodzic 21e3eac740
commit a7ba970823
2 zmienionych plików z 6 dodań i 4 usunięć

Wyświetl plik

@ -1,5 +1,4 @@
# coding: utf-8
import sqlite3
import unittest
from collections import OrderedDict
@ -18,6 +17,7 @@ from wagtail.search.backends import (
InvalidSearchBackendError, get_search_backend, get_search_backends)
from wagtail.search.backends.base import BaseSearchBackend, FieldError, FilterFieldError
from wagtail.search.backends.database.fallback import DatabaseSearchBackend
from wagtail.search.backends.database.sqlite.utils import fts5_available
from wagtail.search.models import IndexEntry
from wagtail.search.query import MATCH_ALL, MATCH_NONE, And, Boost, Not, Or, Phrase, PlainText
from wagtail.tests.search import models
@ -755,7 +755,7 @@ class TestBackendLoader(TestCase):
@unittest.skipIf(connection.vendor != 'sqlite', 'Only applicable to SQLite database systems')
def test_import_by_name_sqlite_db_vendor(self):
# This should return the fallback backend, because the SQLite backend doesn't support versions less than 3.19.0
if sqlite3.sqlite_version_info < (3, 19, 0):
if not fts5_available():
from wagtail.search.backends.database.fallback import DatabaseSearchBackend
db = get_search_backend(backend='default')
self.assertIsInstance(db, DatabaseSearchBackend)
@ -767,7 +767,7 @@ class TestBackendLoader(TestCase):
@unittest.skipIf(connection.vendor != 'sqlite', 'Only applicable to SQLite database systems')
def test_import_by_path_sqlite_db_vendor(self):
# Same as above
if sqlite3.sqlite_version_info < (3, 19, 0):
if not fts5_available():
from wagtail.search.backends.database.fallback import DatabaseSearchBackend
db = get_search_backend(backend='wagtail.search.backends.database')
self.assertIsInstance(db, DatabaseSearchBackend)
@ -779,7 +779,7 @@ class TestBackendLoader(TestCase):
@unittest.skipIf(connection.vendor != 'sqlite', 'Only applicable to SQLite database systems')
def test_import_by_full_path_sqlite_db_vendor(self):
# Same as above
if sqlite3.sqlite_version_info < (3, 19, 0):
if not fts5_available():
from wagtail.search.backends.database.fallback import DatabaseSearchBackend
db = get_search_backend(backend='wagtail.search.backends.database.SearchBackend')
self.assertIsInstance(db, DatabaseSearchBackend)

Wyświetl plik

@ -7,11 +7,13 @@ from django.db import connection
from django.test.testcases import TestCase
from django.test.utils import override_settings
from wagtail.search.backends.database.sqlite.utils import fts5_available
from wagtail.search.tests.test_backends import BackendTests
@unittest.skipUnless(connection.vendor == 'sqlite', "The current database is not SQLite")
@unittest.skipIf(sqlite3.sqlite_version_info < (3, 19, 0), "This SQLite version is not supported")
@unittest.skipUnless(fts5_available(), "The SQLite fts5 extension is not available")
@override_settings(WAGTAILSEARCH_BACKENDS={
'default': {
'BACKEND': 'wagtail.search.backends.database.sqlite.sqlite',