def test_index_multilingual(self): self.index = ArticleIndex() content0 = self.rand_str(prefix='content0_') self.setup_categories() article_1 = self.create_article(content=content0, lead_in=u'lead in text', title=u'a title') article_2 = self.create_article(content=content0, lead_in=u'lead in text', title=u'second title') for article in (article_1, article_2): for category in (self.category1, self.category2): article.categories.add(category) with switch_language(article_2, 'de'): article_2.title = u'de title' article_2.lead_in = u'de lead in' article_2.save() LANGUAGES = add_default_language_settings(PARLER_LANGUAGES_HIDE) with override_parler_settings(PARLER_LANGUAGES=LANGUAGES): with smart_override('de'): language = get_current_language() # english-only article is excluded qs = self.index.index_queryset(language) self.assertEqual(qs.count(), 1) self.assertEqual( qs.translated(language, title__icontains='title').count(), 1) # the language is correctly setup for article_de in qs: self.assertEqual(self.index.get_title(article_de), 'de title') self.assertEqual(self.index.get_description(article_de), 'de lead in')
def test_index_simple(self): self.request = self.get_request('en') self.index = ArticleIndex() content0 = self.rand_str(prefix='content0_') self.setup_categories() article = self.create_article(content=content0, lead_in='lead in text', title='a title') article.categories.add() for tag_name in ('tag 1', 'tag2'): article.tags.add(tag_name) for category in (self.category1, self.category2): article.categories.add(category) article.update_search_on_save = True article.save() self.assertEqual(self.index.get_title(article), 'a title') self.assertEqual(self.index.get_description(article), 'lead in text') self.assertTrue('lead in text' in self.index.get_search_data( article, 'en', self.request)) self.assertTrue(content0 in self.index.get_search_data( article, 'en', self.request)) self.assertTrue( 'tag 1' in self.index.get_search_data(article, 'en', self.request)) self.assertTrue(self.category1.name in self.index.get_search_data( article, 'en', self.request))
def get_index(self): from haystack.constants import DEFAULT_ALIAS index = ArticleIndex() index._backend_alias = DEFAULT_ALIAS return index