X-Git-Url: https://git.mdrn.pl/wolnelektury.git/blobdiff_plain/35b64fd8bec183054b63234aebf8782b87cf5cc5..ad39c2501159fa52e980c95af3e735e36b459c15:/apps/search/tests/index.py diff --git a/apps/search/tests/index.py b/apps/search/tests/index.py index 12f6f7d1c..b8d44726f 100644 --- a/apps/search/tests/index.py +++ b/apps/search/tests/index.py @@ -1,11 +1,15 @@ # -*- 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 unittest import skipIf from django.conf import settings from django.test.utils import override_settings from catalogue.test_utils import WLTestCase, get_fixture from os import path import tempfile from catalogue.models import Book, Tag -from search import Index, Search, SearchResult +from search.index import Index, Search, SearchResult import catalogue import opds @@ -13,43 +17,40 @@ import opds @override_settings( SEARCH_INDEX = tempfile.mkdtemp(prefix='djangotest_search_'), ) +@skipIf(getattr(settings, 'NO_SEARCH_INDEX', False), + u'Requires search server and NO_SEARCH_INDEX=False.') class BookSearchTests(WLTestCase): def setUp(self): WLTestCase.setUp(self) index = Index() - index.index.delete_all() + self.search = Search() + index.delete_query(self.search.index.query(uid="*")) index.index.commit() - with self.settings(NO_SEARCH_INDEX=False): - self.do_doktora = Book.from_xml_file( - get_fixture('do-doktora.xml', opds)) - self.do_anusie = Book.from_xml_file( - get_fixture('fraszka-do-anusie.xml', catalogue)) - - self.search = Search() + self.do_doktora = Book.from_xml_file( + get_fixture('do-doktora.xml', opds)) + self.do_anusie = Book.from_xml_file( + get_fixture('fraszka-do-anusie.xml', catalogue)) def test_search_perfect_book_author(self): books = self.search.search_books(self.search.index.query(authors=u"sęp szarzyński")) assert len(books) == 1 - assert books[0].book_id == self.book.id + assert books[0].id == self.do_anusie.id + # here we lack slop functionality as well def test_search_perfect_book_title(self): - books = self.search.search_books(self.search.index.query(u"fraszka anusie")) + books = self.search.search_books(self.search.index.query(title=u"fraszka do anusie")) assert len(books) == 1 - assert books[0].book_id == self.book.id - - def test_search_perfect_parts(self): - books = self.search.search_phrase(u"Jakoż hamować") - assert len(books) == 2 - for b in books: - b.book_id == self.book.id - a = SearchResult.aggregate(books) - # just one fragment hit. - assert len(a[0].hits) == 1 - - def test_search_perfect_author_title(self): - books = self.search.search_books(self.search.index.query(authors=u"szarzyński anusie")) - assert books == [] - - + assert books[0].id == self.do_anusie.id + + # TODO: Add slop option to sunburnt + # def test_search_perfect_parts(self): + # books = self.search.search_phrase(u"Jakoż hamować") + # assert len(books) == 2 + # for b in books: + # b.book_id == self.book.id + # a = SearchResult.aggregate(books) + # # just one fragment hit. + # assert len(a[0].hits) == 1 +