提供对python请求的大型响应\u mock

提供对python请求的大型响应\u mock,python,django,unit-testing,python-requests,requests-mock,Python,Django,Unit Testing,Python Requests,Requests Mock,我正在使用python请求访问一些API,最近我学习了用于模拟http响应进行测试的请求\u mock。 我使用的api的响应非常大 adapter.register_uri('GET', 'http://api.gateway/payment/, text='VERY LARGE TEXT') 传递大响应文本的正确方式是什么?这并不是什么神奇的事情,除非你正在做流式处理,否则无论如何都会将所有数据加载到内存中 如果你真的担心内存(这是python,你可能不应该这样做),你可以随时按需从文件加

我正在使用python请求访问一些API,最近我学习了用于模拟http响应进行测试的请求\u mock。 我使用的api的响应非常大

adapter.register_uri('GET', 'http://api.gateway/payment/, text='VERY LARGE TEXT')

传递大响应文本的正确方式是什么?

这并不是什么神奇的事情,除非你正在做流式处理,否则无论如何都会将所有数据加载到内存中

如果你真的担心内存(这是python,你可能不应该这样做),你可以随时按需从文件加载,但我认为这更多的是关于你想如何构造测试,而不是什么请求mock可以帮助你的东西

import requests
import requests_mock


def fileLoader(filename):
    def loader(req, context):
        with open(filename, 'r') as f:
            return f.read()

    return loader


with requests_mock.mock() as m:
    m.get('http://test.com', text=fileLoader('abc.txt'))
    resp = requests.get('http://test.com')
    assert resp.text.strip() == 'ABC'