def test_article_list_plugin_article_count(): """ Test article list plugin inserts correct amount of articles into the context. Amount is should be same as defined in plugin settings. """ article_count = 10 create_articles(article_count) publish_articles_with_publisher(Article.objects.all()) plugin = init_plugin(ArticleList, article_amount=3) plugin_instance = plugin.get_plugin_class_instance() context = plugin_instance.render({}, plugin, None) assert len(context["articles"]) == 3
def test_article_list_plugin_html(): """ Test article list plugin rendering works and html has relevant content. """ plugin = init_plugin(ArticleList) article = PublicArticleFactory() publish_articles_with_publisher([article]) published_article = Article.publisher_manager.published().first() renderer = init_content_renderer() html = renderer.render_plugin(instance=plugin, context={}, placeholder=plugin.placeholder) assert published_article.title in html
def test_article_list_tag_exclusion(): """ Test article list plugin excluding articles which contain tags within the excluded tags """ exclude_tag = TagFactory() create_articles(3) hidden_article = Article.objects.last() hidden_article.tags.add(exclude_tag) hidden_article.save() publish_articles_with_publisher(Article.objects.all()) plugin = init_plugin(ArticleList, article_amount=3) plugin.exclude_tags = (exclude_tag, ) plugin_instance = plugin.get_plugin_class_instance() context = plugin_instance.render({}, plugin, None) assert len(context["articles"]) == 2
def test_article_list_category_exclusion(): """ Test article list plugin excluding articles which are within the excluded categories """ exclude_category = CategoryFactory() create_articles(3) hidden_article = Article.objects.last() hidden_article.category = exclude_category hidden_article.save() publish_articles_with_publisher(Article.objects.all()) plugin = init_plugin(ArticleList, article_amount=3) plugin.exclude_categories = (exclude_category, ) plugin_instance = plugin.get_plugin_class_instance() context = plugin_instance.render({}, plugin, None) assert len(context["articles"]) == 2
def test_tag_article_list_plugin_html(): """ Test article list plugin rendering works and html has relevant content. """ tag = TagFactory() article = PublicArticleFactory(title="article1", tags=[tag]) publish_articles_with_publisher([article]) published_article = Article.publisher_manager.published().first() plugin = init_plugin(TagFilterArticleList) plugin.tags.add(tag) renderer = init_content_renderer() html = renderer.render_plugin(instance=plugin, context={}, placeholder=plugin.placeholder) assert published_article.title in html
def test_article_list_plugin_language_filter(language_filter): """ Test article list plugin filters articles according to language filter """ article_fi = PublicArticleFactory(language="fi") article_en = PublicArticleFactory(language="en") publish_articles_with_publisher(Article.objects.all()) published_article_fi = Article.publisher_manager.published().get( language="fi") published_article_en = Article.publisher_manager.published().get( language="en") plugin = init_plugin(ArticleList, language_filter=language_filter) plugin_instance = plugin.get_plugin_class_instance() context = plugin_instance.render({}, plugin, None) if language_filter == "en": assert published_article_fi not in context["articles"] assert published_article_en in context["articles"] elif language_filter == "fi": assert published_article_fi in context["articles"] assert published_article_en not in context["articles"] else: assert published_article_fi in context["articles"] assert published_article_en in context["articles"]