- index = Index()
- self.search = Search()
- index.delete_query(self.search.index.query(uid="*"))
- index.index.commit()
-
- 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].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(title=u"fraszka do anusie"))
- assert len(books) == 1
- 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
-
+ with override_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))
+
+ def test_search_perfect_parts(self):
+ response = self.client.get('/szukaj/?q=Jakoż hamować')
+ res = response.context['results']
+ self.assertEqual(len(res['snippet']), 1)
+ for b, s in res['snippet'].items():
+ self.assertEqual(b.id, self.do_anusie.id)