mirror of
https://github.com/Hopiu/wagtail.git
synced 2026-04-10 01:50:59 +00:00
tests(search/elastic): Use swappable class names in tests
This commit is contained in:
parent
3bcb722a5f
commit
9751e00c92
1 changed files with 32 additions and 36 deletions
|
|
@ -13,13 +13,7 @@ from django.test import TestCase
|
|||
from django.db.models import Q
|
||||
|
||||
from wagtail.wagtailsearch.backends import get_search_backend
|
||||
from wagtail.wagtailsearch.backends.elasticsearch import (
|
||||
ElasticSearch,
|
||||
ElasticSearchMapping,
|
||||
ElasticSearchResults,
|
||||
ElasticSearchQuery,
|
||||
ElasticSearchAtomicIndexRebuilder,
|
||||
)
|
||||
from wagtail.wagtailsearch.backends.elasticsearch import ElasticSearch
|
||||
|
||||
from wagtail.tests.search import models
|
||||
from .test_backends import BackendTests
|
||||
|
|
@ -239,9 +233,11 @@ class TestElasticSearchQuery(TestCase):
|
|||
json.dumps(a, sort_keys=True, default=default), json.dumps(b, sort_keys=True, default=default)
|
||||
)
|
||||
|
||||
query_class = ElasticSearch.query_class
|
||||
|
||||
def test_simple(self):
|
||||
# Create a query
|
||||
query = ElasticSearchQuery(models.SearchTest.objects.all(), "Hello")
|
||||
query = self.query_class(models.SearchTest.objects.all(), "Hello")
|
||||
|
||||
# Check it
|
||||
expected_result = {'filtered': {
|
||||
|
|
@ -252,7 +248,7 @@ class TestElasticSearchQuery(TestCase):
|
|||
|
||||
def test_none_query_string(self):
|
||||
# Create a query
|
||||
query = ElasticSearchQuery(models.SearchTest.objects.all(), None)
|
||||
query = self.query_class(models.SearchTest.objects.all(), None)
|
||||
|
||||
# Check it
|
||||
expected_result = {'filtered': {
|
||||
|
|
@ -263,7 +259,7 @@ class TestElasticSearchQuery(TestCase):
|
|||
|
||||
def test_and_operator(self):
|
||||
# Create a query
|
||||
query = ElasticSearchQuery(models.SearchTest.objects.all(), "Hello", operator='and')
|
||||
query = self.query_class(models.SearchTest.objects.all(), "Hello", operator='and')
|
||||
|
||||
# Check it
|
||||
expected_result = {'filtered': {
|
||||
|
|
@ -274,7 +270,7 @@ class TestElasticSearchQuery(TestCase):
|
|||
|
||||
def test_filter(self):
|
||||
# Create a query
|
||||
query = ElasticSearchQuery(models.SearchTest.objects.filter(title="Test"), "Hello")
|
||||
query = self.query_class(models.SearchTest.objects.filter(title="Test"), "Hello")
|
||||
|
||||
# Check it
|
||||
expected_result = {'filtered': {'filter': {'and': [
|
||||
|
|
@ -285,7 +281,7 @@ class TestElasticSearchQuery(TestCase):
|
|||
|
||||
def test_and_filter(self):
|
||||
# Create a query
|
||||
query = ElasticSearchQuery(models.SearchTest.objects.filter(title="Test", live=True), "Hello")
|
||||
query = self.query_class(models.SearchTest.objects.filter(title="Test", live=True), "Hello")
|
||||
|
||||
# Check it
|
||||
expected_result = {'filtered': {'filter': {'and': [
|
||||
|
|
@ -302,7 +298,7 @@ class TestElasticSearchQuery(TestCase):
|
|||
|
||||
def test_or_filter(self):
|
||||
# Create a query
|
||||
query = ElasticSearchQuery(models.SearchTest.objects.filter(Q(title="Test") | Q(live=True)), "Hello")
|
||||
query = self.query_class(models.SearchTest.objects.filter(Q(title="Test") | Q(live=True)), "Hello")
|
||||
|
||||
# Make sure field filters are sorted (as they can be in any order which may cause false positives)
|
||||
query = query.get_query()
|
||||
|
|
@ -318,7 +314,7 @@ class TestElasticSearchQuery(TestCase):
|
|||
|
||||
def test_negated_filter(self):
|
||||
# Create a query
|
||||
query = ElasticSearchQuery(models.SearchTest.objects.exclude(live=True), "Hello")
|
||||
query = self.query_class(models.SearchTest.objects.exclude(live=True), "Hello")
|
||||
|
||||
# Check it
|
||||
expected_result = {'filtered': {'filter': {'and': [
|
||||
|
|
@ -329,7 +325,7 @@ class TestElasticSearchQuery(TestCase):
|
|||
|
||||
def test_fields(self):
|
||||
# Create a query
|
||||
query = ElasticSearchQuery(models.SearchTest.objects.all(), "Hello", fields=['title'])
|
||||
query = self.query_class(models.SearchTest.objects.all(), "Hello", fields=['title'])
|
||||
|
||||
# Check it
|
||||
expected_result = {'filtered': {
|
||||
|
|
@ -340,7 +336,7 @@ class TestElasticSearchQuery(TestCase):
|
|||
|
||||
def test_fields_with_and_operator(self):
|
||||
# Create a query
|
||||
query = ElasticSearchQuery(models.SearchTest.objects.all(), "Hello", fields=['title'], operator='and')
|
||||
query = self.query_class(models.SearchTest.objects.all(), "Hello", fields=['title'], operator='and')
|
||||
|
||||
# Check it
|
||||
expected_result = {'filtered': {
|
||||
|
|
@ -351,7 +347,7 @@ class TestElasticSearchQuery(TestCase):
|
|||
|
||||
def test_multiple_fields(self):
|
||||
# Create a query
|
||||
query = ElasticSearchQuery(models.SearchTest.objects.all(), "Hello", fields=['title', 'content'])
|
||||
query = self.query_class(models.SearchTest.objects.all(), "Hello", fields=['title', 'content'])
|
||||
|
||||
# Check it
|
||||
expected_result = {'filtered': {
|
||||
|
|
@ -362,7 +358,7 @@ class TestElasticSearchQuery(TestCase):
|
|||
|
||||
def test_multiple_fields_with_and_operator(self):
|
||||
# Create a query
|
||||
query = ElasticSearchQuery(
|
||||
query = self.query_class(
|
||||
models.SearchTest.objects.all(), "Hello", fields=['title', 'content'], operator='and'
|
||||
)
|
||||
|
||||
|
|
@ -375,7 +371,7 @@ class TestElasticSearchQuery(TestCase):
|
|||
|
||||
def test_exact_lookup(self):
|
||||
# Create a query
|
||||
query = ElasticSearchQuery(models.SearchTest.objects.filter(title__exact="Test"), "Hello")
|
||||
query = self.query_class(models.SearchTest.objects.filter(title__exact="Test"), "Hello")
|
||||
|
||||
# Check it
|
||||
expected_result = {'filtered': {'filter': {'and': [
|
||||
|
|
@ -386,7 +382,7 @@ class TestElasticSearchQuery(TestCase):
|
|||
|
||||
def test_none_lookup(self):
|
||||
# Create a query
|
||||
query = ElasticSearchQuery(models.SearchTest.objects.filter(title=None), "Hello")
|
||||
query = self.query_class(models.SearchTest.objects.filter(title=None), "Hello")
|
||||
|
||||
# Check it
|
||||
expected_result = {'filtered': {'filter': {'and': [
|
||||
|
|
@ -397,7 +393,7 @@ class TestElasticSearchQuery(TestCase):
|
|||
|
||||
def test_isnull_true_lookup(self):
|
||||
# Create a query
|
||||
query = ElasticSearchQuery(models.SearchTest.objects.filter(title__isnull=True), "Hello")
|
||||
query = self.query_class(models.SearchTest.objects.filter(title__isnull=True), "Hello")
|
||||
|
||||
# Check it
|
||||
expected_result = {'filtered': {'filter': {'and': [
|
||||
|
|
@ -408,7 +404,7 @@ class TestElasticSearchQuery(TestCase):
|
|||
|
||||
def test_isnull_false_lookup(self):
|
||||
# Create a query
|
||||
query = ElasticSearchQuery(models.SearchTest.objects.filter(title__isnull=False), "Hello")
|
||||
query = self.query_class(models.SearchTest.objects.filter(title__isnull=False), "Hello")
|
||||
|
||||
# Check it
|
||||
expected_result = {'filtered': {'filter': {'and': [
|
||||
|
|
@ -419,7 +415,7 @@ class TestElasticSearchQuery(TestCase):
|
|||
|
||||
def test_startswith_lookup(self):
|
||||
# Create a query
|
||||
query = ElasticSearchQuery(models.SearchTest.objects.filter(title__startswith="Test"), "Hello")
|
||||
query = self.query_class(models.SearchTest.objects.filter(title__startswith="Test"), "Hello")
|
||||
|
||||
# Check it
|
||||
expected_result = {'filtered': {'filter': {'and': [
|
||||
|
|
@ -432,7 +428,7 @@ class TestElasticSearchQuery(TestCase):
|
|||
# This also tests conversion of python dates to strings
|
||||
|
||||
# Create a query
|
||||
query = ElasticSearchQuery(
|
||||
query = self.query_class(
|
||||
models.SearchTest.objects.filter(published_date__gt=datetime.datetime(2014, 4, 29)), "Hello"
|
||||
)
|
||||
|
||||
|
|
@ -445,7 +441,7 @@ class TestElasticSearchQuery(TestCase):
|
|||
|
||||
def test_lt_lookup(self):
|
||||
# Create a query
|
||||
query = ElasticSearchQuery(
|
||||
query = self.query_class(
|
||||
models.SearchTest.objects.filter(published_date__lt=datetime.datetime(2014, 4, 29)), "Hello"
|
||||
)
|
||||
|
||||
|
|
@ -458,7 +454,7 @@ class TestElasticSearchQuery(TestCase):
|
|||
|
||||
def test_gte_lookup(self):
|
||||
# Create a query
|
||||
query = ElasticSearchQuery(
|
||||
query = self.query_class(
|
||||
models.SearchTest.objects.filter(published_date__gte=datetime.datetime(2014, 4, 29)), "Hello"
|
||||
)
|
||||
|
||||
|
|
@ -471,7 +467,7 @@ class TestElasticSearchQuery(TestCase):
|
|||
|
||||
def test_lte_lookup(self):
|
||||
# Create a query
|
||||
query = ElasticSearchQuery(
|
||||
query = self.query_class(
|
||||
models.SearchTest.objects.filter(published_date__lte=datetime.datetime(2014, 4, 29)), "Hello"
|
||||
)
|
||||
|
||||
|
|
@ -487,7 +483,7 @@ class TestElasticSearchQuery(TestCase):
|
|||
end_date = datetime.datetime(2014, 8, 19)
|
||||
|
||||
# Create a query
|
||||
query = ElasticSearchQuery(
|
||||
query = self.query_class(
|
||||
models.SearchTest.objects.filter(published_date__range=(start_date, end_date)), "Hello"
|
||||
)
|
||||
|
||||
|
|
@ -500,7 +496,7 @@ class TestElasticSearchQuery(TestCase):
|
|||
|
||||
def test_custom_ordering(self):
|
||||
# Create a query
|
||||
query = ElasticSearchQuery(
|
||||
query = self.query_class(
|
||||
models.SearchTest.objects.order_by('published_date'), "Hello", order_by_relevance=False
|
||||
)
|
||||
|
||||
|
|
@ -510,7 +506,7 @@ class TestElasticSearchQuery(TestCase):
|
|||
|
||||
def test_custom_ordering_reversed(self):
|
||||
# Create a query
|
||||
query = ElasticSearchQuery(
|
||||
query = self.query_class(
|
||||
models.SearchTest.objects.order_by('-published_date'), "Hello", order_by_relevance=False
|
||||
)
|
||||
|
||||
|
|
@ -520,7 +516,7 @@ class TestElasticSearchQuery(TestCase):
|
|||
|
||||
def test_custom_ordering_multiple(self):
|
||||
# Create a query
|
||||
query = ElasticSearchQuery(
|
||||
query = self.query_class(
|
||||
models.SearchTest.objects.order_by('published_date', 'live'), "Hello", order_by_relevance=False
|
||||
)
|
||||
|
||||
|
|
@ -548,7 +544,7 @@ class TestElasticSearchResults(TestCase):
|
|||
query.queryset = models.SearchTest.objects.all()
|
||||
query.get_query.return_value = 'QUERY'
|
||||
query.get_sort.return_value = None
|
||||
return ElasticSearchResults(backend, query)
|
||||
return backend.results_class(backend, query)
|
||||
|
||||
def construct_search_response(self, results):
|
||||
return {
|
||||
|
|
@ -716,7 +712,7 @@ class TestElasticSearchMapping(TestCase):
|
|||
|
||||
def setUp(self):
|
||||
# Create ES mapping
|
||||
self.es_mapping = ElasticSearchMapping(models.SearchTest)
|
||||
self.es_mapping = ElasticSearch.mapping_class(models.SearchTest)
|
||||
|
||||
# Create ES document
|
||||
self.obj = models.SearchTest(title="Hello")
|
||||
|
|
@ -798,7 +794,7 @@ class TestElasticSearchMappingInheritance(TestCase):
|
|||
|
||||
def setUp(self):
|
||||
# Create ES mapping
|
||||
self.es_mapping = ElasticSearchMapping(models.SearchTestChild)
|
||||
self.es_mapping = ElasticSearch.mapping_class(models.SearchTestChild)
|
||||
|
||||
# Create ES document
|
||||
self.obj = models.SearchTestChild(title="Hello", subtitle="World", page_id=1)
|
||||
|
|
@ -1008,7 +1004,7 @@ class TestRebuilder(TestCase):
|
|||
self.rebuilder.add_model(models.SearchTest)
|
||||
|
||||
# Check the mapping went into Elasticsearch correctly
|
||||
mapping = ElasticSearchMapping(models.SearchTest)
|
||||
mapping = ElasticSearch.mapping_class(models.SearchTest)
|
||||
response = self.es.indices.get_mapping(self.backend.es_index, mapping.get_document_type())
|
||||
|
||||
# Make some minor tweaks to the mapping so it matches what is in ES
|
||||
|
|
@ -1030,7 +1026,7 @@ class TestRebuilder(TestCase):
|
|||
class TestAtomicRebuilder(TestCase):
|
||||
def setUp(self):
|
||||
self.backend = get_search_backend('elasticsearch')
|
||||
self.backend.rebuilder_class = ElasticSearchAtomicIndexRebuilder
|
||||
self.backend.rebuilder_class = self.backend.atomic_rebuilder_class
|
||||
self.es = self.backend.es
|
||||
self.rebuilder = self.backend.get_rebuilder()
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue