这是我INSTALLED_APPS
列表中的两个应用程序,它给我一个问题。
特别是一个单元测试是assertRaises
期待django.contrib.messages.api.MessageFailure
。
sentry.client
安装一个侦听got-request-exception的信号处理程序。
在测试执行期间,信号处理程序尝试将异常记录到sentry&这会导致sentry.client失败并显示HTTP Error 400: BAD REQUEST
。如果异常类型具有属性``。
我可以在哪里monkeypatch django.contrib.messages.api.MessageFailure
这样:
MessageFailure.skip_sentry = True
显然我不想改变django测试源。
答案 0 :(得分:1)
之前我没有使用过哨兵,但是为skip_entry
课程添加了MessageFailure
属性,你使用的是mix-in。在Django服务器启动时保证运行的模块中添加以下代码[任何models.py
应该工作]:
from django.contrib.messages.api import MessageFailure
class MessageFailureMixin:
skip_sentry = True
MessageFailure.__bases__ += (MessageFailureMixin,)