【问题标题】:Testing pages with streamfields in Wagtail在 Wagtail 中使用流场测试页面
【发布时间】:2021-04-16 18:25:20
【问题描述】:

我正在通过get_context 在 StreamField 的富文本元素中解析 HTML,并希望能够测试我所做的上下文是否包含相关修改。但我真的很难创建一个具有填充 StreamField 的模拟/存根。

我正在查看https://docs.wagtail.io/en/stable/advanced_topics/testing.html,但需要做的不仅仅是测试创建是否成功以及rich_text 函数等似乎没有以正确的格式输出其他问题(例如附加到@987654324 @ 属性);我在通过dumpdata 制作固定装置方面取得了一些成功,但它们破坏了其他测试(可能是由于使数据库不一致或其他原因)

有没有什么好的示例可以预先填充 StreamField 的测试?

【问题讨论】:

    标签: testing wagtail wagtail-streamfield


    【解决方案1】:

    ...事实证明它非常简单,一旦被指出来!

    获得页面后(pagetype 是模块名称,PageName 是类名称)

    from modules.pagetype.models import PageName
    page = PageName()
    

    将一些 JSON 添加到 StreamField 对象(这里称为 body

    import json
    page.body = json.dumps(
        [
           {"type": "rich_text", "value": "<h2>Hello, World!</h2>"},
           {"type": "rich_text", "value": "<h4>Here's another field</h4>"}
        ]
    )
    

    然后您可能想要发布帖子并查看输出。

    from django.test import Client
    page.save_revision().publish()
    rv = Client().get(page.url)
    assert "something_about_my_output_html" in str(rv.rendered_content)
    

    【讨论】:

      猜你喜欢
      • 2017-03-30
      • 1970-01-01
      • 2019-08-12
      • 1970-01-01
      • 1970-01-01
      • 2018-01-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多