X-Git-Url: https://git.mdrn.pl/wolnelektury.git/blobdiff_plain/357027375ff8867f42ca34bcbfb5a78b5b185fc3..5d1dcf0b143ba6409b66ca13ddf31143d6e00a59:/src/search/mock_search.py diff --git a/src/search/mock_search.py b/src/search/mock_search.py index 253c277a8..33d2a5eaf 100644 --- a/src/search/mock_search.py +++ b/src/search/mock_search.py @@ -1,8 +1,7 @@ -# -*- coding: utf-8 -*- # This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later. # Copyright © Fundacja Nowoczesna Polska. See NOTICE for more information. # -from mock import Mock +from unittest.mock import Mock from catalogue.models import Book, Tag from random import randint, choice @@ -20,13 +19,14 @@ class Search(Mock): index = MockIndex() - @staticmethod - def _find_some_books(snippets=False, query_terms=None, max_results=20): + def search_words(self, words, fields, required=None, book=True, picture=False): from .index import SearchResult - qs = Book.objects.order_by('?') - if snippets: - qs = qs.exclude(fragments=None) + max_results = 20 + + if picture: return [] + + qs = Book.objects.filter(findable=True).order_by('?') results = [] for book in qs[:randint(1, max_results)]: doc = { @@ -34,39 +34,7 @@ class Search(Mock): 'book_id': book.pk, 'published_date': randint(1000, 1920), } - if snippets: - fragment = book.fragments.order_by('?')[0] - doc.update({ - 'header_type': choice(['strofa', 'akap']), - 'header_index': randint(100, 200), - 'header_span': randint(100, 200), - 'fragment_anchor': fragment.anchor, - 'snippets_position': randint(100, 200), - 'snippets_length': randint(100, 200), - 'snippets_revision': randint(1, 100), - 'themes_pl': fragment.tags.filter(category='theme'), - }) - res = SearchResult(doc, how_found='mock', query_terms=query_terms) - if snippets: - res.snippets = [fragment.short_text] + res = SearchResult(doc, how_found='mock', query_terms=words) results.append(res) return results - def search_phrase(self, searched, field='text', book=False, - filters=None, snippets=False): - return self._find_some_books(snippets) - - def search_some(self, searched, fields, book=True, filters=None, snippets=True, query_terms=None): - return self._find_some_books(snippets, query_terms) - - def search_books(self, query, filters=None, max_results=10): - return self._find_some_books(snippets, max_results=max_results) - - def search_everywhere(self, searched, query_terms=None): - return [] - - def hint_tags(self, query, pdcounter=True, prefix=True): - return Tag.objects.exclude(category='set').order_by('?')[:randint(1, 10)] - - def hint_books(self, prefix): - return Book.objects.order_by('?')[:randint(1, 10)]