如何测试自定义Django中间件类的process_exception函数?

时间:2018-07-13 19:24:56

标签: django django-rest-framework django-middleware

我编写了一个自定义的Django MiddleWare类,以使用process_exception进行一些额外的异常信息处理。当我运行服务器时,这似乎运行良好,但是当我去编写测试时,我不知道如何触发该功能。

根据process_exception的文档:

  

当视图引发异常时,Django调用process_exception()。

我想编写一个测试来确保这种情况发生,因此我知道我的中间件实际上是活动的并且可以正常工作。在模拟了各种视图函数以触发异常而没有得到所需的行为后,我终于尝试粘贴一个

// inline
credentials += Credentials("Some Nexus Repository Manager", "my.artifact.repo.net", "admin", "admin123")

// file 
credentials += Credentials(Path.userHome / ".ivy2" / ".credentials")

在其中一种视图功能中。当我这样做时,由于ZeroDivisionError,我的测试失败了。这是可以预期的,除了Django应该捕获那些异常并触发我的process_exception函数。

我的实际问题包括两个部分:

  1. Django中间件在测试期间的行为是否有所不同?

  2. 我是否可以做一些其他事情来测试我的中间件是否已正确配置以被异常触发?

0 个答案:

没有答案