Python 如何测试用Wagtail钩子注册的端点? 出身背景

Python 如何测试用Wagtail钩子注册的端点? 出身背景,python,hook,wagtail,Python,Hook,Wagtail,好的,我有一个库,它和许多代码段库一样,用于将管理视图添加到wagtail CMS中 说我有,在我的摇尾里 @hooks.register'register\u admin\u url' def注册管理URL: 返回[ urlr“^references/”,includeadmin\u URL,namespace='wagtailreferences', ] 注册的视图位于views/reference.py中: @权限检查程序。需要“添加” def添加请求: 参考=获取参考模型 Referen

好的,我有一个库,它和许多代码段库一样,用于将管理视图添加到wagtail CMS中

说我有,在我的摇尾里

@hooks.register'register\u admin\u url' def注册管理URL: 返回[ urlr“^references/”,includeadmin\u URL,namespace='wagtailreferences', ] 注册的视图位于views/reference.py中:

@权限检查程序。需要“添加” def添加请求: 参考=获取参考模型 ReferenceForm=get\u reference\u formReference 如果request.method==“POST”: 我想测试的东西,因为它不能正常工作 其他: form=ReferenceFormuser=request.user 返回renderrequest,wagtail_references/references/add.html,{'form':form} 因此,在我的test_stuff.py文件中,我有:

类TestReferenceIndexViewTestCase,WagtailTestUtils: def设置自我: 自我登录 def postself,参数=无: params=params if params else{} 返回self.client.postreverse'wagtailreferences:add',参数 def测试_simpleself: 回复=self.post self.assertEqualresponse.status_代码,201 问题 但是test_simple失败了,因为它测试的视图的URL当然是动态连接的,而不是在url.py中定义的。我得到:

问题 如何测试其URL由wagtail钩子注册的端点

我试过了 在测试用例中手动注册挂钩,如:

class TestReferenceIndexView(TestCase, WagtailTestUtils):
    def setUp(self):
        self.register_hook('register_admin_urls', register_admin_urls)

啊!我没有在我的测试应用程序中注册管理员URL

tests/url.py如下所示:

from django.conf.urls import include, url
from wagtail.core import urls as wagtail_urls
urlpatterns = [
    url(r'', include(wagtail_urls)),
]
from django.conf.urls import include, url
from wagtail.admin import urls as wagtailadmin_urls
from wagtail.core import urls as wagtail_urls
urlpatterns = [
    url(r'^admin/', include(wagtailadmin_urls)),
    url(r'', include(wagtail_urls)),
]
但现在看起来是这样的:

from django.conf.urls import include, url
from wagtail.core import urls as wagtail_urls
urlpatterns = [
    url(r'', include(wagtail_urls)),
]
from django.conf.urls import include, url
from wagtail.admin import urls as wagtailadmin_urls
from wagtail.core import urls as wagtail_urls
urlpatterns = [
    url(r'^admin/', include(wagtailadmin_urls)),
    url(r'', include(wagtail_urls)),
]

固定的。叹气。

这里看不出任何错误-Wagtail自己的子应用程序图像、文档等通常使用register\u admin\u URL,并使用相同的模式进行测试。您是否已将应用程序添加到测试环境的已安装应用程序设置中?谢谢您的时间,@gasman,问题是人