如何断言mock是用特定类型而不是实例调用的?

2024-09-30 02:30:48 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用的是mock和python2.7.3的最新版本

我正在构建我的第一个flask应用程序,我正在测试一些基本的中间件,看看是否烧瓶.中止()发生(当它发生时,我断言调用了一个未经授权的异常方法)

    def test_invokes_raise_http_exception_when_apply_blows_up(self):
        start_response = mock.Mock()
        self.sut = BrokenMiddleware(self.app)
        with mock.patch.object(self.sut, 'raise_http_exception') as raise_up:
            self.sut.__call__({}, start_response)
        raise_up.assert_called_once_with(Unauthorized(), start_response)

class BrokenMiddleware(Middleware):

    def apply_middleware(self, environ):
        flask.abort(401) 

这是我的生产代码

^{pr2}$

我遇到的问题是mock使断言失败,因为引发的401与我在断言中所期望的不一样。在

如果我只关心类型,而不关心实际的实例,我怎么能重写断言呢?在


Tags: selfhttpflaskresponsedefwithexception断言

热门问题