小编Mic*_*Liu的帖子

pytest 不会使用 mock.patch 引发 HTTPError

我的代码如下:

import pytest
import requests
from unittest import mock

@mock.patch('requests.get')
def test_verify(mock_request):
    mock_resp = mock.Mock()
    mock_resp.status_code = 404

    mock_request.return_value = mock_resp
    r = requests.get()

    with pytest.raises(requests.exceptions.HTTPError) as err_msg:
        r.raise_for_status()
    print(err_msg)
Run Code Online (Sandbox Code Playgroud)

由于响应的状态代码设置为 404,我预计会引发 HTTPError。但是,有一个错误说明

Failed: DID NOT RAISE <class 'requests.exceptions.HTTPError'>
Run Code Online (Sandbox Code Playgroud)

输出如下:

======================================== 测试会话开始====== ================================== 平台达尔文 -- Python 3.6.4, pytest-3.7.0, py- 1.5.2, pluggy-0.7.1 rootdir: /Users/michael/Code/youtube-data-api, inifile: plugins: requests-mock-1.5.2 收集了1个项目

temp_test.py F
[100%]

==============================================失败==== ======================================================================

模拟请求 =

@mock.patch('requests.get')
def test_verify(mock_request):
    mock_resp = mock.Mock()
    mock_resp.status_code = 404

    mock_request.return_value = mock_resp
    r = requests.get()
    #print(r.status_code) …
Run Code Online (Sandbox Code Playgroud)

python pytest python-requests python-unittest

9
推荐指数
1
解决办法
4095
查看次数

标签 统计

pytest ×1

python ×1

python-requests ×1

python-unittest ×1