Python 如何模拟requests.Session.send()方法?

Python 如何模拟requests.Session.send()方法?,python,mocking,python-requests,Python,Mocking,Python Requests,我怎么能嘲笑它?我已经超越了阶级 from requests import Session class MySession(Session): def __init__(self, *args, **kwargs): super(MySession).__init__(*args, **kwargs) ... def do_query(self, *args, **kwargs): ... # some preparation

我怎么能嘲笑它?我已经超越了阶级

from requests import Session
class MySession(Session):
    def __init__(self, *args, **kwargs):
        super(MySession).__init__(*args, **kwargs)
    ...
    def do_query(self, *args, **kwargs):
    ...
    # some preparation
        req = Request(
            method=method.upper(),
            url=url,
            headers=headers,
            files=files,
            data=data,
            json=json,
            params=params,
            auth=auth,
            cookies=None,
            hooks=None,
        )

        prepared = self.prepare_request(req)

        settings = self.merge_environment_settings(
            prepared.url, {}, stream, check_ssl, None
        )

        send_kwargs = {
            'timeout': timeout,
            'allow_redirects': True,
        }

        send_kwargs.update(settings)
        resp = self.send(prep, **send_kwargs)
在测试中,我想模拟send方法并使用我自己的结果

class FakeResult(object):
    def __init__(self):
        self.status_code = 200
        self.url = 'http://127.0.0.1/test_url'
        self.content = 'content'

class TestFilter(unittest.TestCase):
    @mock.patch('requests.Session.send')
    def test_test(self, session_mock):
        session_mock.return_value = FakeResult()
        req = CatchData('test')
        s = MySession()

        # Here the problem
        s.do_query(req)    

在do_查询中,方法self.send()尝试发送数据。我不要这个。如何嘲笑它?do_查询的许多部分是requests.Request的一部分。

您可能会更喜欢库。您可能会更喜欢库。