Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/rest/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python单元测试补丁失败_Python_Python 3.x_Unit Testing_Python Requests - Fatal编程技术网

Python单元测试补丁失败

Python单元测试补丁失败,python,python-3.x,unit-testing,python-requests,Python,Python 3.x,Unit Testing,Python Requests,所以我看了这段youtube视频: 当我复制视频中的内容时,我的测试失败: 类别: import requests class JetpackRebooter: @staticmethod def reboot_jetpack(secure_token): response = requests.post('http://my.jetpack/restarting/reboot/', data={'gSecureToken' : secure_token})

所以我看了这段youtube视频:

当我复制视频中的内容时,我的测试失败:

类别:

import requests

class JetpackRebooter:

    @staticmethod
    def reboot_jetpack(secure_token):
        response = requests.post('http://my.jetpack/restarting/reboot/', data={'gSecureToken' : secure_token})
        return response.status_code
单元测试:

from src.jetpack_rebooter import JetpackRebooter
from unittest.mock import patch

def test_reboot_jetpack():
    secure_token = 'ca26bacf85c6d69d0bdaa3ff07df3cc4118abf45'
    with patch("jetpack_rebooter.requests.post") as mocked_post:
        mocked_post.return_value.status_code = 200
        assert JetpackRebooter.reboot_jetpack(secure_token) == 200
但是,将
补丁(“jetpack\u rebooter.requests.post”)
更改为
补丁(“requests.post”)
会导致测试通过。这是为什么?

补丁(“jetpack\u rebooter.requests.post”)
不起作用,因为模块的完整导入路径不是
jetpack\u rebooter
,而是
src.jetpack\u rebooter

因此,
补丁(“src.jetpack\u rebooter.requests.post”)
可以工作


但是,由于
src.jetpack\u rebooter.requests
指向
requests
模块对象,因此
补丁(“src.jetpack\u rebooter.requests.post”)
补丁(“requests.post”)
之间没有区别;但是
补丁(“src.jetpack\u rebooter.requests”)
补丁(“requests”)

那么
补丁(“src.jetpack\u rebooter.requests.post”)
呢?是的,这就成功了。。。非常感谢。