gpt4 book ai didi

django - 使用 client.get 测试 Wagtail 页面 View

转载 作者:行者123 更新时间:2023-11-28 21:25:09 25 4
gpt4 key购买 nike

我想为使用 RoutablePageMixin 的 Wagtail 页面测试我的 View 功能.我发现 Wagtail 包含一些 testing functionality ,但我正在尝试检查不同网址上的内容。尽管 Wagtail 测试功能有效,但使用 self.client.get 进行的测试无效——我收到 404 响应。我正在尝试以下测试:

def test_subpage(self):
response = self.client.get(
self.page.full_url + self.page.reverse_subpage('subpage')
)
self.assertEqual(response.status_code, 200,
'Request the open positions page')

我假设错误在于创建页面的方式。我已经使用了几种方法,但找不到一种适用于此的方法。我发现创建页面的最直观方法如下:

def setUp(self):
self.login()
parent = Page.get_root_nodes()[0] # Home

self.assertCanCreate(parent, MyPage, {
'title': 'Title!',
'title_sv': 'Title2!',
'slug': 'test',
'published': datetime.datetime.now(),
})

self.page = MyPage.objects.get(slug='apply')

这些子页面已经过手动测试并且似乎可以正常工作。

最佳答案

在测试代码(或任何其他代码......)中创建页面的最简单方法是:

parent = Page.objects.get(url_path='/home/')
page = MyPage(title='Title!', slug='test', body='...')
parent.add_child(instance=page)

请注意,Page.get_root_nodes()[0] 不会返回您的站点主页 - 树根是不可编辑的占位符,站点主页通常是它的子项。您可以创建根的其他子级,但除非您给他们相应的站点记录,否则无法通过任何 URL 访问它们(这可能是您在测试中得到 404 的原因) .

关于django - 使用 client.get 测试 Wagtail 页面 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42649732/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com