Esempio n. 1
0
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
Esempio n. 2
0
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
Esempio n. 3
0
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
Esempio n. 4
0
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
Esempio n. 5
0
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
Esempio n. 6
0
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"]